一.什么时候用继承
当类与类之间,存在相同(共性)的内容,并满足子类是父类中的一种,就可以考虑使用继承,来优化代码。
(1)存在相同(共性)的内容
(2)满足子类是父类的一种
(3)案例
二.extends关键字
(1)Java中提供一个关键字extends用这个关键字,我们可以让一个类和另外一个类建立起继承关系。
(2)Studnet成为子类(派生类),Person称为父类(基类或者超类)
三.使用继承的好处
(1):可以把多个子类中重复的代码抽取到父类中了,提高代码的复用性。
(2):子类可以在父类的基础上,增加其他的功能,使子类更强大。
四.继承的特点
(1)Java只能单继承,不能多继承,但是可以多层继承
(2)Java中所有的类都是直接或者间接继承Object
(3)子类只能访问父类中非私有的成语
五.子类到底能继承父类中的那些内容
六.继承中成员方法的访问特点
1.this调用:就近原则
2.super调用:直接找父类
七.什么是方法的重写
在继承体系中,子类出现了和父类一模一样的方法声明,
我们就称子类的这个方法是重写的方法
八.方法重写建议加上那个注释,有什么好处?
@Override注解可以校验重写是否正确,同时可读性好。
九.重写方法有那些基本要求
1.子类重写的方法尽量跟父类中的方法保持一致。
2.只有虚方法表里面的方法可以被重写。
注意:被static,prviate,final修饰的不会被添加到虚方法表中。
十.方法重写的本质
覆盖虚方法表中的方法。
十一.构造方法的访问特点
1.父类中的构造方法不会被子类继承。
2.子类中所有的构造方法默认访问父类中的无参构造,再执行自己。
3.为什么?
子类在初始化的时候,有可能会使用到父类中的数据,如果父类没有完成初始化,子类将无法使用父类的数据。
子类在初始化之前,一定要调用父类构造方法先完成父类数据空间的初始化。
4.怎么调用父类构造方法的?
子类构造方法的第一行语句默认都是:super(),不写也存在,且必须在第一行。
5.this,super总结
1.this
理解为一个变量,表示当前方法调用者的地址值
2.super
代表父类存储空