多继承
让编程改变世界
Change the world by program
多继承
多继承(multiple inheritance)可能是面向对象编程技术中最惹人争议的功能了。 这个概念乍看起来很简单,但它可能引起一些难以预料的后果。 因此,JAVA 和 C# 等面向对象编程语言大都只支持多继承的最简单的版本。 但鱼油们稍安勿躁,只要办法得当,只要心中默念小甲鱼我爱你,多继承就可以让你更轻松进行编程。接下来,小甲鱼将告诉你应该怎样做!什么时候需要用到多继承?
只要你遇到的问题无法只用一个”是一个”关系来描述的时候,就是多继承出场的时候。 举个栗子:在学校里有老师和学生,他们都是人(Person),我们可以用”老师是人”和”学生是人”语法来描述这种情况。 从面相对象编程角度上来看,我么应该创建一个名为 Person 的基类和两个名为 Teacher 和 Student 的子类,后两者是从前者继承来的。问题来了:有一部分学生还教课挣钱(助教),该怎么办?
酱紫就存在了既是老师又是学生的复杂关系,也就是同时存在着两个”是一个”关系。 我们需要写一个 TeschingStudent 类让它同时继承 Teacher 类和 Student 类,换句话说,就是需要使用多继承。基本语法:
class TeachingStudent : public Student, public Teacher {…
} 下边我们写个示例演示一下这个多继承的模型! 要求:创建一个由 Person, Teacher, Student 和 TeachingStudent 构成的类层次结构。 Example:example.cpp(课件及源代码)