首页 > 解决方案 > JAVA和C++中的多态性相同吗?

问题描述

C++ 中的多态性与 Java 中的多态性相同吗?另外,当我们说多态具有静态和动态类型时,C++ 中是否存在相同的东西?

标签: javac++ooppolymorphism

解决方案


Java中的OOP与C++之间的一个方面是接口实现和多重继承。

虽然大多数 OO 语言(java、C# 等)支持本机接口并禁止多重继承,但 C++ 的工作方式正好相反。

C++ 没有接口,只有类。如果你想模仿一个接口,你必须编写一个只有纯虚拟方法的类并继承它。这没有问题,因为 C++ 允许您继承其他 OO 语言所不允许的多个类。(一个类,java中的无限接口)。

但是,仅仅因为 C++ 允许您进行多重继承,您就应该谨慎对待它。继承多个非纯虚拟类(非接口)很容易产生意大利面条代码,很多人甚至认为它是反模式。


推荐阅读