在 C++ Primer 一书中,作者写道:“OOP 背后的关键思想是多态性”。我不确定我是否理解作者的意思。其他重要的东西呢:抽象、继承等。谁能详细说明一下,好吗?
编辑:我不问“什么是多态性”。我在问“为什么多态性是 OOP 背后的关键”?为什么不继承是关键?
在 C++ Primer 一书中,作者写道:“OOP 背后的关键思想是多态性”。我不确定我是否理解作者的意思。其他重要的东西呢:抽象、继承等。谁能详细说明一下,好吗?
编辑:我不问“什么是多态性”。我在问“为什么多态性是 OOP 背后的关键”?为什么不继承是关键?
我不确定它是否是OOP的关键。这只是某人的看法。
我认为有四个关键:抽象数据类型、封装、继承和多态。他们属于一起。
每个想法都依赖于之前的想法。ADT 是唯一独立的。封装需要ADT。多态性需要继承。
多态性有助于消除if
、switch
和case
语句。您不必编写代码来根据对象类型确定要做什么;虚拟表只是在幕后为您调用正确的方法。
作者可能会这样说,因为:
当 B 类从 A 继承时,B 类可以类型转换为 A ----> 这也称为多态。所以继承直接允许多态。
当 A 实现接口 I*something* 时,A 可以以 I*something* 的形式出现,这也称为多态性。所以接口使多态性成为现实。
摘要:抽象类只是另一个不能实例化并充当基类(通常)的类。非抽象子类可以被类型转换为抽象类,因此是多态性。
所以事实上它看到大多数 OOP 的概念都可以被看作是多态性,并且由于这个作者可能已经说过了。
通常,它是创建对象(及其字段、方法等)的想法,这些对象可以具有多种形式——派生(抽象)类、实现的接口等。
如果你先问谷歌、维基百科等,你就会在几秒钟内得到答案;)