继承
概念
- 当多个类之间有相同的特征和行为时, 可以将相同的内容提取出来组成一个<u>公共类</u>.让多个类吸收公共类中已有特征和行为. 而多个类型只需要编写自己独有特征和行为的机制,叫做继承
- 在Java语言中使用
extends
关键字来表示继承关系
public class Worker extends Person{} // 表示Worker类继承自Person类
// 其中Person类叫做 超类/父类/基类
// 其中Workder类叫做 派 生类/子类/孩子类
- 使用继承提高了代码的复用性, 可维护性及扩展性. 是多态的前提条件
特点
- 子类不能继承父类的构造方法和私有方法, 但<u>私有变量可以被继承</u>, 只是不能直接访问
- 无论使用何种方式构造子类的对象时都会 <u>自动调用父类的无参构造方法来初始化从父类中继承的成员变量</u>.相当于在构造方法的第一行增加代码
super()
的效果 - 使用继承必须满足逻辑关系子类 is a 父类,也就是不能滥用继承
- Java语言中只支持单继承不支持多继承. 也就是说一个子类只能有一个父类, 但一个父类可以有多个子类
方法重写
概念
从父类中继承下来的方法不满足子类的需求时, 就需要在子类中重新写一个和父类一样的方法来覆盖从父类中继承下来的版本. 该方式就叫做方法的重写(Override)
原则
- 要求方法名相同, 参数列表相同, 返回值类型相同. 从Java5开始允许返回子类类型
- 要求方法的访问权限不能变小 , 可以相同或者变大
- 要求方法不能抛出更大的异常
又见构造块与静态代码块
- 先执行父类的静态代码块, 再执行子类的静态代码块
- 执行父类的构造块, 执行父类的构造方法体
- 执行子类的构造块, 执行子类的构造方法体
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。