继承Inheritance / Extense

基本效果

使用前

使用后

名词

子类 继承 父类

子类 / 派生类

Subclass / Child Class / Derived Class

父类 / 基类 / 超类

Superclass / Parent Class / Base Class

语法

public class 类名 extends 父类类名 {

方法及属性调用

使用继承后 调用的方法时

如果方法是子类的 就调用子类的方法代码

如果方法是父类的 就调用父类的方法代码

但都运行在子类对象上

多个子类

多个子类可以继承同一个父类

一个父类可以有多个子类

继承链

子类可以继续有它自己的子类

从而形成继承链

方法覆盖Method Overriding

方法调用实质

每次调用时 会从当前对象开始询问 有没有被调用的方法

如果没有 则查询父类

直到找到为止

方法覆盖

什么是

子类写一个 跟父类方法签名一样的方法 的实现

方法签名: 方法名 + 参数类型列表

效果

子类可以再实现一次这个方法

此时再调用时 就不会调用父类的方法

super

什么是

一个关键字

可以用来在子类里 找到父类的代码

语法

super.方法名();

效果

可以继续从父类寻找方法并调用

继承与组合对比

含义

组合:有

继承:是

数量

组合:可以组合多个

继承:只能继承 1 个

贴合

组合:需要额外写代码,否则需要属性引导

继承:所有属性和方法直接贴合在子类上

ZZAX 微信公众

文档一更新,立刻告诉你