一、继承
1. 为什么使用继承
多类之间拥有多个相同的属性或是方法,解决方式是将相同的属性和方法抽取出来,封装到一个新的类中,并继承新的类。
2.继承语法
A extends B
核心要点1:如果A extends B----得出结论:A是B的子类,B是A的父类。
核心要点2:Java中一个类只能继承一个父类(单继承关系)。
核心要点3:继承的关键字是extends。
3.继承初始化的顺序
父类属性初始化——>父类构造器初始化——>子类属性初始化——>子类构造器初始化
二、Super
定义:super关键字来访问父类的成员
规范:
super只能出现在子类的方法和构造方法中。
Super()调用构造方法时,只能是第一句。
super不能访问父类的private成员。
三、访问修饰符
(1)Private 默认 protected public 修饰的属性都可以在本类中被访问
(2)在同包不同类的情况下,Private修饰的属性不可以被访问,其他三者可以被访问。
(3)在不同包的情况下,但属于父子类关系,Private 默认修饰的属性不能被访问,剩余两者可以被访问。
(4)在不同包中,也不属于父子类关系,只要public属性可以被访问,其余都不可以被访问。
四、重写
方法重写的规则
1.方法名相同。
2.参数列表相同。
3.返回值类型相同或者是其子类。
4.访问权限不能严于父类(宽于父类)[ public>protected> 默认(friendly)>private]。
五、抽象
核心要点:
抽象类的关键字是abstract。
抽象类的特点是不能实例化(例如: new Pet()会报错)。
抽象方法的特点是没有方法体。
抽象类中可以有非抽象方法(特列)。
抽象方法:
抽象方法没有方法体。
抽象方法必须在抽象类里。
抽象方法必须在子类中被实现,除非子类是抽象类。
六、Final
- final修饰类 特点:不能被继承
- Final修饰方法 特点:不能被重写
- Final修饰属性 特点:不能被二次赋值