《面向对象的思考过程(原书第4版)》一3.5 多重继承

简介: 多重继承允许一个类继承自多个类。实际看起来这是个好主意。对象都应该模拟现实世界,不是吗?现实世界中存在很多多重继承的例子。父母是多重继承的一个好例子。每个孩子有一对父母,这是非常自然的事。所以设计类时使用多种继承是有道理的。在一些面向对象的语言中(比如C++中)你可以这样做。

本节书摘来自华章出版社《面向对象的思考过程(原书第4版)》一书中的第3章,第3.5节,[美] 马特·魏斯费尔德(Matt Weisfeld) 著黄博文 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.5 多重继承

第7章会讲述有关继承的更多细节。然而,这里很适合讨论多重继承。多重继承是类设计中最强大也最具挑战的一个方面。
顾名思义,多重继承允许一个类继承自多个类。实际看起来这是个好主意。对象都应该模拟现实世界,不是吗?现实世界中存在很多多重继承的例子。父母是多重继承的一个好例子。每个孩子有一对父母,这是非常自然的事。所以设计类时使用多种继承是有道理的。在一些面向对象的语言中(比如C++中)你可以这样做。
然而,这种情况会陷入与操作符重载相似的情况。多重继承是非常强大的技术,事实上没有它一些问题会变得难以解决。多重继承甚至可以完美解决一些问题。然而,多重继承无论对程序员还是编译器作者而言,都会显著增加系统的复杂度。
与操作符重载一样,Java、.NET和Objective-C的设计者认为多重继承带来的系统的复杂度超过了带来的好处,因此从语言层面消除了多重继承。Java、.NET和Objective-C语言提供的接口构造能在某些方面能弥补这一点。但Java、.NET和Objective-C不允许传统的多重继承。
行为继承和实现继承
接口是行为继承的一种机制,抽象类则用于实现继承。编程语言中的接口类型提供不同行为的接口,但不提供实现,而抽象类既提供接口,也能提供实现。第8章详细阐述了该主题。

相关文章
|
4月前
掌握面向对象程序设计继承和派生机制的概念
掌握面向对象程序设计继承和派生机制的概念
15 0
|
5月前
|
Java
Java面向对象编程,解释封装、继承和多态的概念。
Java面向对象编程,解释封装、继承和多态的概念。
41 2
|
7月前
|
存储 算法 Java
面向对象编程实践:类、对象与继承
面向对象编程实践:类、对象与继承
35 0
|
8月前
|
存储 数据安全/隐私保护 Python
面向对象编程(OOP):理解类、封装性的关键概念
面向对象编程(OOP):理解类、封装性的关键概念
76 0
|
9月前
|
存储 编译器 C++
C++ 面向对象三大特性——多态
面向对象三大特性的,封装,继承,多态,今天我们研究研究C++的多态。
|
9月前
|
编译器 C++
【面向对象语言三大特性之 “多态”】(一)
【面向对象语言三大特性之 “多态”】(一)
47 0
|
9月前
|
编译器 Linux C++
【面向对象语言三大特性之 “多态”】(二)
【面向对象语言三大特性之 “多态”】(二)
61 0
|
10月前
|
存储 设计模式 算法
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
|
11月前
|
设计模式 存储 安全
【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
【Java设计模式 面向对象设计思想】一 再谈面向对象和封装、抽象、继承、多态四大特性
55 0
面向对象程序设计第七章:继承与派生
面向对象程序设计第七章:继承与派生
103 0
面向对象程序设计第七章:继承与派生