java - JAVA和C++中的多态性相同吗?
问题描述
C++ 中的多态性与 Java 中的多态性相同吗?另外,当我们说多态具有静态和动态类型时,C++ 中是否存在相同的东西?
解决方案
Java中的OOP与C++之间的一个方面是接口实现和多重继承。
虽然大多数 OO 语言(java、C# 等)支持本机接口并禁止多重继承,但 C++ 的工作方式正好相反。
C++ 没有接口,只有类。如果你想模仿一个接口,你必须编写一个只有纯虚拟方法的类并继承它。这没有问题,因为 C++ 允许您继承其他 OO 语言所不允许的多个类。(一个类,java中的无限接口)。
但是,仅仅因为 C++ 允许您进行多重继承,您就应该谨慎对待它。继承多个非纯虚拟类(非接口)很容易产生意大利面条代码,很多人甚至认为它是反模式。
推荐阅读
- flutter - 嗨,我正在尝试保存本地个人资料图片
- javascript - window.location.href 重定向不适用于 url 中的 #
- node.js - 节点js脚本注入问题
- javascript - 如果 areEqualFunction 执行复杂/大量比较,使用 React.memo 会更快吗?
- kotlin - 如何配置一个 gradle 多模块项目?
- ruby-on-rails - 复合期望停止工作rspec
- javascript - 在 webpack 构建中提供单个静态图像
- visual-studio - 显示给定月份最后一天的值 - SSRS 报表生成器
- laravel - 如何让 cron 决定每天运行 laravel 计划的时间?
- python - 警告:张量流:在最小化损失和转换 Keras 模型的问题时,变量不存在梯度