第八章:面向对象的三大特性[封装、继承、多态]
二、继承
碳素笔 是一种 笔
水杯 是一种 容器
狗 是一种 动物
A is-a B
1. 理解
(1) Java中的继承:体现类之间is-a关系
A is a B关系成立,A和B之间具有继承
子类 父类
子类 继承 父类
extends
(2) 子类通过继承关系,直接使用父类中的属性和
方法
2. 继承体现了程序的复用性和扩展性
3. 方法的覆盖:[也被称为方法的重写-override]
(1) 理解:子类中定义了和父类中相同的方法
(2) 方法覆盖的要求:
a. 子类中的方法名、形参列表、返回值类型
和父类相同
b. 子类的访问修饰符和父类相同,或是比父
类更宽
(3) 使用:如果子类覆盖了父类中方法,则优先使
用子类覆盖后的方法
(4) 注意事项:
a. 如果子类定义了和父类方法名、形参列表相
同,但是返回值类型和父类不同的方法时,编译报
错
b. 如果子类定义了和父类方法名、返回值相同,
但是参数列表不同的方法时,编译通过,运行通
过,构成了父类+子类中的方法重载
方法重载:方法名相同,形参列表不同 -》
overload
4. Java中继承特点:
(1) 一个父类可以同时定义多个直接子类
class Animal{}
class Cat extends Animal{}
class Dog extends Animal{}
(2) 一个子类只能有一个直接的父类,但是可以具
有多个间接的父类(多级继承),java中的类之间的
继承关系是:单继承
class A{}
class B extends A{}
class C extends B{}
// B是C的直接父类,A是C间接父类
三、多态