跳转到内容

编程基础/继承和多态

来自维基教科书,一个开放的世界中的开放书籍

在面向对象编程中,继承是基于另一个对象(原型继承)或类(基于类的继承)创建对象或类的机制,保留类似的实现。在大多数基于类的面向对象语言中,通过继承创建的对象(“子对象”)获得父对象(除了:基类的构造函数、析构函数、重载运算符和友元函数)的所有属性和行为。继承允许程序员创建建立在现有类基础上的类,以指定新的实现,同时保持相同的行为(实现接口),以重用代码并通过公共类和接口独立扩展原始软件。[1]

继承是一种从最通用到最具体地排列对象的方法。从另一个对象继承的对象被认为是该对象的子类型。一个例子可能包括教师和学生,它们都从人继承。当我们可以用这个短语来描述两个对象之间的关系时,这种关系就是继承。

我们也经常说一个类是它继承的类的子类子类,或者另一个类是它的超类父类。我们可以将层次结构底部最通用的类称为基类

继承可以帮助我们表示工作方式有一些差异和一些相似之处对象。我们可以将所有对象共有的功能放在基类中,然后定义一个或多个子类,这些子类具有自己的自定义功能。

继承也是一种轻松重用现有代码的方法。如果我们已经有一个几乎满足我们需求的类,我们可以创建一个子类,在其中部分覆盖它的一些行为,或者添加一些新功能。

在一些静态类型语言中,继承非常受欢迎,因为它允许程序员绕过静态类型的一些限制。如果教师和学生都是人,我们可以编写一个接受 Person 类型参数的函数,并让它在教师和学生对象上工作,因为它们都从 Person 继承。这被称为多态

关键术语

[编辑 | 编辑源代码]
继承
一个对象或类基于另一个对象或类,使用相同的实现或指定新的实现来保持相同的行为。[2]
多态
为不同类型实体提供单一接口。[3]

参考资料

[编辑 | 编辑源代码]
华夏公益教科书