前言
思考现在既定事实背后的原因文章来源:https://www.toymoban.com/news/detail-412667.html
1、为什么不允许多继承?
- 多继承会导致“钻石问题”
2、钻石问题是什么?
(1) 是什么
- 类 B、C 继承父类 A,类 D 同时继承了 B 和 C(假设存续多继承)
- 下述图表的形状类似于钻石(或者菱形),因此这个问题被形象地称为钻石问题(菱形继承问题)
文章来源地址https://www.toymoban.com/news/detail-412667.html
(2) 造成什么问题
- 以上述例子说明:
- 类 D 初始化时,会执行两次类 A 的初始化,造成资源浪费
- 调用“D.xxx()”类 A 的方法将会导致一个编译错误。这是因为编译器并不知道是调用 B.getWeight() 还是调用C.getWeight()。所以,调用 getWeight 方法是不明确的故不能通过编译。这一点未实操验证
- 参考资料:
https://blog.csdn.net/feilzhang/article/details/80443194
https://blog.csdn.net/weixin_34942564/article/details/114308166
到了这里,关于为什么 Java 中不允许多继承?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!