为描述和处理个人信息,定义类Person如下:
为描述和处理学生信息,定义类Student:
这样定义类,大家会发现什么?(很多代码重复!)
通过继承,简化Student类的定义:
案例:
总结:
1)为什么用继承性
① 减少了代码的冗余,提高了代码的复用性
② 便于功能的扩展
③ 为之后多态性的使用,提供了前提
2)继承性的格式: class A extends B{}
A:子类、派生类、subclass B:父类、超类、基类、superclass
一旦子类A继承父类B以后,子类A中就获取了父类B中声明的所有的属性和方法。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构。 只有因为封装性的影响,使得子类不能直接调用父类的结构而已。
子类继承父类以后,还可以声明自己特有的属性或方法:实现功能的拓展。子类和父类的关系,不同于子集和集合的关系。 extends:延展、扩展
3)Java中关于继承性的规定:
- 一个类可以被多个子类继承。
- Java中类的单继承性:一个类只能有一个父类。子父类是相对的概念。
- 子类直接继承的父类,称为:直接父类。间接继承的父类称为:间接父类
- 子类继承父类以后,就获取了直接父类以及所有间接父类中声明的属性和方法。