继承Inheritance / Extense
基本效果
使用前

使用后

名词
子类 继承 父类
子类 / 派生类
Subclass / Child Class / Derived Class
父类 / 基类 / 超类
Superclass / Parent Class / Base Class
语法
public class 类名 extends 父类类名 {
方法及属性调用

使用继承后 调用的方法时
如果方法是子类的 就调用子类的方法代码
如果方法是父类的 就调用父类的方法代码
但都运行在子类对象上
多个子类

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

子类可以继续有它自己的子类
从而形成继承链
方法覆盖Method Overriding
方法调用实质

每次调用时 会从当前对象开始询问 有没有被调用的方法
如果没有 则查询父类
直到找到为止
方法覆盖

什么是
子类写一个 跟父类方法签名一样的方法 的实现
方法签名: 方法名 + 参数类型列表
效果
子类可以再实现一次这个方法
此时再调用时 就不会调用父类的方法
super

什么是
一个关键字
可以用来在子类里 找到父类的代码
语法
super.方法名();
效果
可以继续从父类寻找方法并调用
继承与组合对比
含义
组合:有
继承:是
数量
组合:可以组合多个
继承:只能继承 1 个
贴合
组合:需要额外写代码,否则需要属性引导
继承:所有属性和方法直接贴合在子类上