单继承和多继承
Java类是单继承,但是Java接口某种程度上是多继承
对于子类来说,存在相同的方法,调用顺序为:自己实现的方法 > 继承父类的方法 > 继承接口实现
类成员和方法可见性及作用域
类的可见性:
public | private | default | protected |
公开,所有类可见 | 当前类可见 | 本包可见,其他包子类不可见 | 本包可见,子类可见(包括其他包的子类) |
继承性:
1、本包子类可以继承父类除private修饰的成员
2、其他包子类只能继承父类public和protected修饰的成员
3、本包子类可以继承父类除private修饰的方法
4、其他包子类只能继承父类public和protected修饰的方法
重载overload、覆盖override与重写overwrite
1、重载overload:子类继承父类的同名方法,自己又声明了同名参数列表不同的方法
2、覆盖override:子类继承父类的无参方法,并且子类存在同名的无参方法,这就叫做覆盖
3、重写overwrite:当前类中存在的多个同名的方法,但是参数列表不同
4、函数签名:方法名和参数列表共同构成
变量与函数的运行时绑定规律
public class Father { public String aa = "Father"; } public class Son extends Father { public String aa = "Son"; public static void main(String[] args) { Father father = new Son(); System.out.println(father.aa); Son son = new Son(); System.out.println(son.aa); } }
运行结果:
Father
Son
变量初始化
类的成员变量会默认初始化成0、null等,但是局部变量不会