3

在 C++ Primer 一书中,作者写道:“OOP 背后的关键思想是多态性”。我不确定我是否理解作者的意思。其他重要的东西呢:抽象、继承等。谁能详细说明一下,好吗?

编辑:我不问“什么是多态性”。我在问“为什么多态性是 OOP 背后的关键”?为什么不继承是关键?

4

3 回答 3

2

我不确定它是否是OOP的关键。这只是某人的看法。

我认为有四个关键:抽象数据类型、封装、继承和多态。他们属于一起。

每个想法都依赖于之前的想法。ADT 是唯一独立的。封装需要ADT。多态性需要继承。

多态性有助于消除ifswitchcase语句。您不必编写代码来根据对象类型确定要做什么;虚拟表只是在幕后为您调用正确的方法。

于 2012-05-05T13:29:41.387 回答
1

作者可能会这样说,因为:

  1. 当 B 类从 A 继承时,B 类可以类型转换为 A ----> 这也称为多态。所以继承直接允许多态。

  2. 当 A 实现接口 I*something* 时,A 可以以 I*something* 的形式出现,这也称为多态性。所以接口使多态性成为现实。

  3. 摘要:抽象类只是另一个不能实例化并充当基类(通常)的类。非抽象子类可以被类型转换为抽象类,因此是多态性。

所以事实上它看到大多数 OOP 的概念都可以被看作是多态性,并且由于这个作者可能已经说过了。

于 2012-05-07T17:37:05.517 回答
0

通常,它是创建对象(及其字段、方法等)的想法,这些对象可以具有多种形式——派生(抽象)类、实现的接口等。

如果你先问谷歌、维基百科等,你就会在几秒钟内得到答案;)

于 2012-05-05T13:18:26.150 回答