1. 面向对象:继承
类与类之间的关系:
- 属性关系
- 参数关系
- 继承关系
extends:继承
public class Biology{}
public class Animal extends Biology{}
public class Person extends Animal{}
//Person的直接父类是Animal
//Person的间接父类是Biology
- 在Java中,继承是单继承,一个子类只能有一个直接父类,但可以有多个间接父类
- extends后面只能写一个类
- 可以继承父类的属性、方法
public static void main(String[] args) {
Biology biology = new Biology();
Animal animal = new Animal();
Person person = new Person();
}
创建子类对象时,父类先被实例化,再去实例化子类
当一个类被实例化时,一定会先实例化它的直接和间接父类
子类的构造器可以有多个,但是必须和父类的构造器形式上统一
2. super关键词
super代表调用父类的结构(属性、方法、构造器)
面试题:this和super的区别
this调用当前类的方法、属性、构造器 | super调用父类的属性、方法、构造器 |
---|---|
this指向本类,调用当前类的对象,方法的调用者 | super指向父类,不代表任何对象 |
子类中当使用super调用父类的构造器时,super() | 在当前类中使用this调用本类的构造器,this(name)必须是第一句话 |
在构造器中,如果需要使用super和this调用其他构造器,只能二选一,而且必须是第一句话
3. 方法的重写
- 子类可以重写父类的方法
- 方法的重写,可以利用到父类中方法已经运算过的结果,在结果的基础上进行添加
- 方法的重写,体现的就是继承的核心,就是为了扩展父类的功能
**方法的重写的规则:前提,继承与被继承的关系
- 访问权限:重写的方法的权限不能低于被重写的方法的权限,开发中一般是等于
- 返回值类型:重写的方法的返回值可以和被重写的方法的返回值不一样,但是两者的返回值必须继承关系,开发中一般是等于
- 方法名:必须相同
- 参数列表:参数类型,参数个数必须相同
- 抛出异常:重写的方法不能抛出比被重写的方法更大的异常
开发中,如果要重写,基本是一模一样,只变方法体