在C ++ Primer一书中,作者写道:“OOP背后的关键思想是多态性”。我不确定我理解作者的意思。其他重要的东西呢:抽象,继承等 有人可以详细说明吗?
编辑: 我不问“什么是多态”。我问“为什么多态性是OOP背后的关键”?为什么不继承是关键?
答案 0 :(得分:2)
我不确定它是 OOP的键。这只是某人的意见。
我认为有四个键:抽象数据类型,封装,继承和多态。他们属于一体。
每个想法都取决于之前的想法。 ADT是唯一独立的产品。封装需要ADT。多态性需要继承。
多态性有助于消除if
,switch
和case
语句。您不必编写代码来根据对象类型确定要执行的操作;虚拟表只是在幕后为您调用正确的方法。
答案 1 :(得分:1)
作者可能这样说是因为:
当B类继承自A时,B类可以被类型化为A ---->这也称为多态性。所以继承直接允许多态。
当A实现接口I *某事物*然后A可以作为I * something *罗马,它也被称为多态。因此,接口使多态性成为现实。
摘要:抽象类只是另一个无法实例化并充当基类的类(通常)。非抽象子类可以类型转换为抽象类,因此也可以是多态。
因此事实上它看到OOP的大多数概念可以被视为多态,并且由于这个作者可能已经说过了。
答案 2 :(得分:0)
一般来说,创建对象(包括它们的字段,方法等)的想法可以有多个表单派生(抽象)类,实现接口等等。
如果您首先要求谷歌,维基百科等,那么您只需几秒就能得到答案;)