面向对象的三大特性之一继承
继承的本质
本质:继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
extends 的意思是“扩展”。子类是父类的扩展,子类可以继承父类的所有方法和非private字段,使用私有字段需要用到—>get/set
Java中,类只有单继承,没有多继承(父类可以有很多子类,子类只能有一个父类)
关系
继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖,组合,聚合等
继承关系的两个类,一个为子类(派生类),一个为父类(基类),子类继承父类,使用关键字extends来表示
子类和父类之间,从意义上讲应该具有“is a“的关系(XiaoMing is a Student)
代码展示
关键内容
(1)object类:
- 在java中,所有的类,都默认继承 object类(最高类)
(2)关键字 super:
super的注意点
- super调用的是父类的构造方法,必须在构造方法的第一个
- super必须只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造器
对比 this
代表的对象不同:
- this:本身调用这个对象
- super:代表调用父类调用对象
前提:
- this:没有继承也可以继续使用
- super:只能在继承条件下才能使用
构造方法:
- this();本类的构造
- super();父类的构造
(3)方法重写:
①前提:需要有继承关系,是子类重写父类的方法
- 方法名必须相同
- 参数列表必须相同
- 修饰符的范围可以扩大,但是不能缩小;修饰符等级 public(公共的)>protected(受保护的)>default(默认的)>private(私有的)
- 抛出的异常,范围可以缩小,但是不能扩大
②子类和父类方法的不同:
只有方法体的不同
③为什么需要重写?
父类的东西,子类不一定需要,或者不一定满足
④重写的快捷键:
Alt+insert;选择override
快速查看类的继承关系
双击当前类 快捷键Ctrl+h