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