

本文合肥Java培训机构教师和大家一起来学习一下“为什么Java中不支持多重继承”,我看到这个Java核心难题很难回答,因为你的答案可能不会让面试官满意java支持多重继承吗,在大多数情况下java支持多重继承吗,面试官正在寻求答案中的关键点,如果你看到很多关键点,面试官会很高兴。在Java中提问这些棘手难题的关键是打算好相关主题,以面对后续的各类可能的问题。

这是比较经典的难题,与为什么String在Java中是不可变的很类似;这两个问题之间的相同之处在于他们主要是由Java创作者的设计决策使然。

为什么Java不支持多重继承,合肥Java培训认为可以考量以上两点:

1)第一个原因是围绕形继承问题造成的歧义,考虑一个类A有foo()方法,然后B和C派生自A,并且有自己的foo()实现,现在D类使用多个继承派生自B和C,如果我们只引用foo(),编译器将能够决定它需要调用那个foo()。这也称为Diamond问题,因为这个继承方案的构架类似于菱形,见图示:
A foo() / \ / \ foo() B C foo() \ / \ / D foo()
即使我们删除的顶部A类并允许多重继承,我们也将发现这个难题含糊性的一面。如果你把这个原因告诉面试官,他会问为什么C++可以支持多重继承而Java不行。嗯,在这些状况下,我会试着向他解释我上面给出的第二个原因,它不是因为技术难度,而是更多的可维护和更清晰的设计是驱动原因,虽然这没法由Java言语设计师确认,我们也是猜测。维基百科链接有一些较好的解释,说明在使用多重继承时,由于问题,不同的语言地址问题是怎样造成的。
2)对我来说第二个也是更有说服力的原因是,多重继承确实使设计复杂化并在转化、构造函数链接等过程中形成弊端。假设你应该多重继承的状况并不多,简单起见,明智的决定是省略它。此外,Java可以借助使用接口支持单继承来防止这些歧义。由于接口唯有手段声明并且没有提供任何推动,因此唯有一个特定方式的谋求,因此不会有任何歧义。(实用详尽的Java面试题大全,可以在Java知音公众号回复“面试题聚合” )
2019年,全面学习Java编程技术,选择合肥达内Java培训,来合肥达内学Java、Python、PHP、web后端、Linux云计算等科技课程,全程一线大咖教授,4-5个月快速把握人工智能、大数据、云计算等热门市场领域关键科技,成为多市场“吃香”的技术人才,找到好工作拿到高工资!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/sanxing/article-124086-1.html
马云这话不对
双方数量相等