第5章 派生类与继承
- 格式:ppt
- 大小:847.00 KB
- 文档页数:85
1.什么是类的继承与派生?继承性是面向对象程序设计的第二个重要特性,通过继承实现了数据抽象基础上的代码重用。
继承是对许多问题中分层特性的一种自然描述,因而也是类的具体化和被重新利用的一种手段,它所表达的就是一种对象类之间的相交关系。
它使得某类对象可以继承另外一类对象的特征和能力。
继承所具有的作用有两个方面:一方面可以减少代码冗余;另一方面可以通过协调性来减少相互之间的接口和界面。
通过继承方式定义的子类也称为派生类。
2.类的三种继承方式之间的区别是什么?类的继承方式有public(公有)继承、protected(保护)继承和private(私有)继承三种。
对于不同的继承方式,会导致基类成员原来的访问属性在派生类中有所变化。
表5.1列出了不同继承方式下基类成员访问属性的变化情况。
表5.1 不同继承方式下基类成员的访问属性说明:该表第1列给出3种继承方式,第1行给出基类成员的3种访问属性。
其余单元格内容为基类成员在派生类中的访问属性。
从表中可以看出:(1) 基类的私有成员在派生类中均是不可访问的,它只能由基类的成员访问。
(2) 在公有继承方式下,基类中的公有成员和保护成员在派生类中的访问属性不变。
(3) 在保护继承方式下,基类中的公有成员和保护成员在派生类中均为保护的。
(4) 在私有继承方式下,基类中的公有成员和保护成员在派生类中均为私有的。
需要注意的是:保护成员与私有成员唯一的不同是当发生派生后,处在基类protected区的成员可被派生类直接访问,而私有成员在派生类中是不可访问的。
在同一类中私有成员和保护成员的用法完全一样。
3.派生类能否直接访问基类的私有成员?若否,应如何实现?派生类不能直接访问基类的私有成员。
具体实现方式:(1) 在类定义体中增加保护段为了便于派生类的访问,可以将基类私有成员中需提供给派生类访问的部分定义为保护段成员。
保护段成员可以被它的派生类访问,但是对于外界是隐藏起来的。
这样,既方便了派生类的访问,又禁止外界对它的派生类访问。
一. 填空题1. 在面向对象的设计方法中,和分别是表现事物及事物间相互联系的概念。
2. 面向对象方法的基本思想是从现实世界中客观存在的事物出发来构造软件系统,并在系统构造中尽可能运用人类的方式。
3. 对象是对现实世界实体的,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作,封装在一起所构成的统一体。
4. 对象之间通过互相联系,以模拟现实世界中不同事物彼此之间的联系。
5. 面向对象方法学的基本原则是按照人类习惯的思维方法建立的模型,开发出尽可能直观、自然地表现求解方法的软件系统。
6. 对象具有性、性、性、性、__________性等。
7. 类的定义是具有相同__________和__________的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述。
8. 一个类的上层可以有__________,下层可以有__________,形成一种层次结构。
9. 一个类可以直接继承多个类,这种继承方式称为__________。
如果限制一个类至多只能有一个超类,则一个类至多只能直接继承一个类,这种继承方式称为__________。
10. 如果类A具有类B的全部属性和全部服务,而且具有自己特有的某些属性或服务,则A 叫做B 的__________,B 叫做A 的__________。
11. 在面向对象的系统中,每个对象都属于一个类,属于某个类的对象称为该类的一个__________。
12. 消息就是向对象发出的__________,它应含有提供服务的对象标识、服务标识、输入信息和回答信息。
13. __________性是面向对象程序设计语言不同于其他语言的最主要特点,是其他语言所没有的。
14. 在收到消息时对象要予以响应,不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做__________。
15. 面向对象的软件工程方法是面向对象方法在软件工程领域的全面运用,它包括面向__________、__________、__________、__________和面向对象的维护等主要内容。