一、基本
1. 什么是继承、继承的好处?
继承是面向对象三大特征之一,可以让类跟类之间产生子父的关系,可以把多个子类中重复的 代码抽取到父类中,子类可以直接使用,减少代码兄余,提高代码的复用性
2. 继承的格式?
public class 子类 extends 父类{}
3. 继承后子类的特点?
子类可以得到父类的属性和行为,子类可以使用
子类可以在父类的基础上新增其他功能,子类更强大。
二、继承的特点
只支持单继承,不支持多继承,但支持多层继承
A extends B ,B extends C B是A 的直接父类,C是A的间接父类
Java中所有的类都直接或间接地继承于Object类
(若一个类没有继承于谁,那么默认继承于Object类)
三、子类继承
1. 构造方法:不可以 (因为子类的名字和父类的不一样)
2. 成员变量:可以 (非私有的虽然继承了,但不能直接使用,需要用过get/set方法)
3. 成员方法:public 可以,private 不可以(看是否在虚方法表中,在就可以用)
虚方法表:非private 非static 非final
四、特点
1. 成员变量:就近原则
super:表示父类 super.name父类中的成员变量
this:表示本类 this.name 本类中的
name:本方法
2. 构造方法
子类不会继承父类的构造方法,
子类中所有的构造方法,默认先访问父类的无参构造,再执行自己
子类构造方法中,第一行都是super()
原因:子类会用到父类的数据,只有初始化了数据才能被用
子类调用父类的构造方法来完成父类数据空间的初始化
五、方法的重写
1. 当父类中的方法不能满足子类现在的需求时,需要进行方法重写
2. 重写注解 @Override
(1) @Override是放在重写后的方法上,校验子类重写时语法是否正确
(2) 加上注解后如果有红色波浪线,表示语法错误
(3) 建议重写方法都加@Override注解,代码安全.
3. 重写的注意事项
(1) 重写方法的名称、形参列表必须与父类中的一致。
(2) 子类重写父类方法时,访问权限: 子类 >= 父类(空着不写<protected<public)
(3) 子类重写父类方法时,返回值类型: 子类 <= 父类
(4) 建议:重写的方法尽量和父类保持一致
(5) 只有被添加到虚方法表中的方法才能被重写