继承注意点:
- final修饰的父类,子类不能继承。
- 父类中用private修饰的变量、方法,实际上会继承父类之中的所有操作(属性、方法),但是需要注意的是,对于所有的非私有(no private)操作属于显式继承(可以直接利用对象操作),而所有的私有操作属于隐式继承(间接完成)。
- 一个类只能继承一个父类,可以换个方法实现多层继承(java中的多重继承)。
- 在继承关系之中,如果要实例化子类对象,会默认先调用父类构造,为父类之中的属性初始化,之后再调用子类构造,为子类之中的属性初始化,即:默认情况下,子类会找到父类之中的无参构造方法。 //相当于隐含了一个super()的形式,如果父类的构造函数有参数,那么super(***)不能省掉。
- super()必须放到首行。 //可以与this()进行比较记忆。
- 所有构造方法默认static。
- 对于父类的包访问权限成员方法、变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承。
- 隐藏是针对成员变量和静态方法的,而覆盖是针对普通方法的。
- 父类的构造器调用以及初始化过程一定在子类的前面。(后面会总结到)