java中的内部类:
成员内部类:定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去new一个内部类对象,即:内部类 对象名=外部类.new 内部类();
静态内部类:创建静态内部类对象时,不需要外部类对象,可以直接创建,即:内部类 对象名=new 内部类();
方法内部类:由于方法内部类不能在外部类方法以外的地方使用,因此方法内部类不能使用访问控制符和static修饰符;
java中的继承初始化顺序:
先执行父类初始化再执行子类初始化,先执行对象中的属性,再执行构造方法中的初始化;
java中的final(可修饰类,方法,属性):
修饰类不允许被继承;
修饰方法不允许被覆盖(重写);
修饰属性不会自动初始化(隐式初始化);
java中的super关键字(在对象内部使用,可以代表父类对象):
如果子类中没有显式的调用父类的构造方法,则默认调用父类无参的构造方法;
显式的调用父类的构造方法必须放在子类构造方法的第一行;
如果子类中既没有显式的调用父类的构造方法,而父类又没有无参的构造方法,则编译出错;
java中多态的引用类型转换:
向上类型转换(无风险,自动/隐式类型转换)小——>大;
向下类型转换(有风险,强制类型转换)大——>小;编译时不会报错,运行时会出现错误,可以使用instanceof运算符
来解决引用对象的类型,避免类型转换的安全性问题。