内容正文:
®干锋教育
第5章面向对象(下)
·类的继承
·多态
。final关键字
。包
·抽象类和接口
。
访问控制
目录
5.1
类的继承
口点击查看本小节知识架构
5.2
final关键字
口点击查看本小节知识架构
5.3
抽象类和接口
口点击查看本小节知识架构
5.4
多态
口点击查看本小节知识架构
5.5
包
口点击查看本小节知识架构
5.6
访问控制
●
_学习目标
1理解继子掌握final关2
键字,
理解多态的概熟悉抽象类和
念接口3〕
知识架构
5.1类的继承
返回目录
5.1.1…
继承的概念
5.1.2
重写父类的方法
5.1.3
super关键字
5.1类的继承
·继承是面向对象的另一大特征,它用于描述了类的所属关系,多个类通过继
承形成一个关系体系。继承是在原有类的基础上扩展新的功能,实现了代码
的复用。
5.1类的继承
5.1.1继承的概念
·现实生活中,继承是指下一代人继承上一代人遗留的财产,即实现财产重用。
在面向对象程序设计中,继承实现代码重用,即在已有类的基础上定义新的
类,新的类能继承已有类的属性与行为,并扩展新的功能,而不需要把已有
类的内容再写一遍。已有类被称为父类或基类,新类被称为子类或派生类。
例如交通工具与公交车就属于继承关系,公交车拥有交通工具的一切特性,
但同时又拥有自己独有的特性。在va中,子类继承父类的语法格式如下:
class子类名extends父类名(
属性和方法
·Java使用extends关键字指明两个类之间的继承关系。子类继承了父类中的属
性和方法,也可以添加新的属性和方法。
5.1类的继承
5.1.1继承的概念
·Jva语言只支持单继承,不允许多重继承,即一个子类只能继承一个父类
否则会引起编译错误,具体示例如下:
class A (
class B (
class c extends A,B (
·Jva语言虽然不支持多重继承,但它支持多层继承,即一个类的父类可以继
承另外的父类。因此,Java类可以有无限多个间接父类,具体示例如下:
class A (
class B extends A (
class C extends B (
5.1类的继承
5.1.2重写父类的方法
·在继承关系中,子类从父类中继承了可访问的方法,但有时从父类继承下来
的方法不能完全满足子类需要,例如上例中,如果要求父类与子类中的sy0
方法输出不同内容,这时就需要在子类方法中修改父类方法,即子类重新定
义从父类中继承的成员方法,这个过程称为方法重写或覆盖。在写方法重写
时必须考虑权限,即被子类重写的方法不能拥有比父类方法更加严格的访问
权限。如下例所示:
5.1类的继承
1
/定义父母类
2
class Parent
3
protected void sav()
4
System.out,println("父辈"):
5
6
7
/1定义子女类继承自父母类
9
class Child extends Parent
9
public void sav()
10
System..out,println("子女"):
11
12
13 nnblic class Testoverride
14
public static void main(String[]args)(
15
/创建chi1d对象
16
Child c new Child();
17
c.say();
18
191
另处例霈要注痛糖载克东的好防法,但在子类Child中重新定
义的滿藏是在网父y0进缽东聯锆果可发现,在
调用製掾波肘,参蛤调数或的法,并不会调
·用劣簞写裒法子类与父类的方法名、返回值类型和参数列表相同。
5.1类的继承
5.1.3 super关键字
·当子类重写父类方法后,子类对象将无法访问父类被重写的方法。如果子类中
需要访问父类的被重写方法,可以通过super关键字来实现,其语法格式如下:
super.成员变量
super.成员方法([实参列表])
在继承中,实例化子类对象时,首先会调用父类的构造方法,再调用子类的构
造方法,这与实际生活中先有父母再有孩子类似。子类继承父类时,并没有继
承父类的构造方法,但子类构造方法可以调用父类的构造方法。在一个构造方
法中调用另一个重载的构造方法使用ths关键字,在子类构造方法中调用父类
的构造方法时应使用super关键字,其语法格式如下:
super([参数列表])
·另外,子类中如果没有显式地调用父类的构造方法,将自动调用父类中不带参
数的构造方法。