继承
继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模
extends扩展,继承。子类是父类的继承
java中只有单继承没有多继承(儿子只有一个父亲,而父亲可以有多个儿子)
继承是类和类之间的一种关系。除此之外,类和类之间的关系还有依赖,聚合,组合等
子类和父类的关系看起来像is-a,具有is-a的关系
接口的实现具有has-a的关系
1. object类(所有类的顶级父类)
2. super
3. 方法重写
super
- super调用父类的构造方法,必须在构造方法的第一行
- super只能出现在子类的方法或者构造方法中
- super和this不能同时调用构造方法,因为都要放在第一行
this
代表的对象不同:
- this:本身这个调用对象
- super: 父类对象的应用
前提: - this:没有继承也可以使用
- super:(只有继承条件)只能在子类中使用
构造方法: - this();本类的构造
- super();父类的构造
#重写
public class A extends B{
}
public class B{
}
public static void main(String[] args){
//A继承B
A a=new A();
B b=new A();
//方法调用之和左边定义的数据类型有关(静态方法!)
//重写,子类重写了父类的方法,那就执行子类的方法(非静态方法)
}
重写:需要有继承关系,子类重写父类方法!
1. 方法名必须相同
2. 参数列表必须相同
3. 修饰符范围可以扩大,不能缩小(大到小public>protected>default>private)
4. 抛出的异常可以缩小,不能扩大(ClassNotFoundException>Exception)
为什么需要重写?
- 父类的功能子类不一定需要,或者父类的功能无法满足子类