反射:反射是指在程序运行期间发现更多的类及其属性的能力。Java中所有的继承都是公有继承。
子类的方法不能够直接访问超类的私有域,只有超类的方法才能够访问私有部分。
通过super调用超类的构造器,使用super调用超类的构造器语句必须是子类构造起的第一句。如果子类的构造器没有显示地调用超类的构造器,则将自动调用超类默认(没有参数)的构造器。如果超类没有不带参数的构造器,并且在子类的构造器中有没有显示地调用超类的其他构造器,则java编译器将报告错误。
一个对象变量可以指示多种实际类型的现象被称为多态,在运行时能够自动地选择调用哪个方法的现象称为动态绑定。
在覆盖一个方法的时候,子类方法不能低于超类方法的可见性。不允许扩展的类被称为final类。
instanceof判断是否可以进行类型转换。
包含一个或者多个抽象方法的类必须声明为抽象类,抽象类还可以包含具体的数据和具体方法。类即使不含抽象方法也可以声明为抽象类。
抽象类不能被实例化,需要注意,可以定义一个抽象类的对象变量,但是它只能引用非抽象子类的对象。
如果想让超类中的某些方法允许被子类访问,或者允许子类的方法访问超类的某个域,需要将这些方法或者域声明为protected。不过,子类中的方法只能够访问子类对象中的域,而不能访问其他父类中的这个域。
对象包装器是不可变的,一旦构造了包装器,就不允许更改包装在其中的值了,对象包装器还是final,因此不能定义它们的子类。不能使用这些包装器创建修改数值参数的方法。
在比较两个枚举类型的值时,永远不要调用equals,而是直接使用“==”就可以了。