Java - 为什么Java中不支持多重继承?

£神魔★判官ぃ 2021-10-18 14:24 467阅读 0赞

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net

为什么Java不支持多重继承,可以考虑以下两点:

1.第一个原因是围绕钻石GEM形继承问题产生的歧义。考虑一个类A有foo()方法,然后B和C派生自A,并且有自己的foo()实现,现在D类使用多个继承派生自B和C,如果我们只引用 foo(),编译器将无法决定它应该调用哪个foo()。这也称为Diamond问题。

那为什么C++可以支持多重继承而Java不行。嗯,在这种情况下,它不是因为技术难度,而是更多的可维护和更清晰的设计是驱动因素。

2.对我来说第二个也是更有说服力的理由是,多重继承确实使设计复杂化并在转换、构造函数链接等过程中产生问题。假设你需要多重继承的情况并不多,简单起见,明智的决定是省略它。此外,Java可以通过使用接口支持多重继承来避免这种歧义。由于接口只有方法声明而且没有提供任何实现(或提供了一个默认实现),因此只有一个特定方法的实现,因此不会有任何歧义。

发表评论

表情:
评论列表 (有 0 条评论,467人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java多重继承问题

    继承是面向对象编程 (OOP) 语言(如[Java][])的主要功能之一。它是一种以增强软件设计中类重用能力的方式组织类的基本技术。多重继承是众多继承类型之一,是继承机制的重要

    相关 Java实现多重继承技巧

    多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而我们知道Java为了保证数据安全,它只允许单继承。有些时候我们会认为如果系统中需要使用多重继承往往都是糟糕的

    相关 java"多重继承"方案

    我们知道java中接口是支持多继承的,但是类是不支持进行多继承的,但是有些时候难免会遇到可能需要用到多个类中的某些成员或者方法,这个时候怎么办呢? 利用内部类可以独立继承一个