1. 面向对象:继承

类与类之间的关系:

  1. 属性关系
  2. 参数关系
  3. 继承关系

extends:继承

public class Biology{}
public class Animal extends Biology{}
public class Person extends Animal{}
//Person的直接父类是Animal
//Person的间接父类是Biology
  1. 在Java中,继承是单继承,一个子类只能有一个直接父类,但可以有多个间接父类
  2. extends后面只能写一个类
  3. 可以继承父类的属性、方法

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. 方法的重写

  • 子类可以重写父类的方法
  • 方法的重写,可以利用到父类中方法已经运算过的结果,在结果的基础上进行添加
  • 方法的重写,体现的就是继承的核心,就是为了扩展父类的功能

**方法的重写的规则:前提,继承与被继承的关系

  1. 访问权限:重写的方法的权限不能低于被重写的方法的权限,开发中一般是等于
  2. 返回值类型:重写的方法的返回值可以和被重写的方法的返回值不一样,但是两者的返回值必须继承关系,开发中一般是等于
  3. 方法名:必须相同
  4. 参数列表:参数类型,参数个数必须相同
  5. 抛出异常:重写的方法不能抛出比被重写的方法更大的异常

开发中,如果要重写,基本是一模一样,只变方法体