继承
- 关键字 extends
- Java中只有单继承
- 静态方法(类方法)不能被继承,静态成员不能被子类访问
- 对于方法:子类可以使用父类拥有的方法(private和默认修饰的方法除外),可以理解为:把父类的所有和方法在子类里重写一遍(private和默认修饰的方法除外).
- 对于成员:在修饰符为非private和默认之外,若子类没有和父类相同名字的一个成员,则子类调用的是父类这个成员,如果子类有和父类一个相同名字的成员,则调用的是子类的成员,父类的可以用super调用
- 子类在构造时,默认调用父类的无参构造(super()),而用super调用父类的构造方法,必须放在第一位
- 子类在被加载前父类先被加载,也就是子类构造时父类先被构造了
方法重写
静态方法无法被重写!!!在子类中写一个和父类相同的(除了方法体不同)方法,就是*把父类的方法重写,等价于父类中这个方法被更改了
假设A继承了B
- 方法的调用之和定义的数据类型有关,比如:
A a = new A();
B b = new A();
那么a调用的就是a中的方法啊,b调用的就是b中的方法,如果b中的方法被重写了,那么b会执行a中的方法,也可以理解为b中这个方法被更改了
-
子类重写父类方法:
- 方法名必须相同
- 参数列表必须相同
- 修饰符范围可以扩大 Protected>Default>public
- 抛出的异常范围可以被缩小
-
IJ软件中,Alt + Insert快捷键,快速重写方法