java - Java 8 中的 Default 是否破坏了不允许我们进行多重继承的整个想法?

标签 java java-8

有人可以帮助我理解为什么他们会在 Java 8 中添加 Default 以允许实现接口(interface),而不是仅仅允许我们在抽象类中拥有多重继承?仅仅允许我们扩展多个类与允许我们在接口(interface)中创建默认方法之间到底有什么区别?

最佳答案

不,默认值不会破坏不允许多重继承的想法,至少不会比接口(interface)已经做的更多。重点仍然是,接口(interface)仅指定接口(interface)(方法签名和返回值),而类还指定对象的状态。这个思想在默认方法中并没有被打破,即默认方法只能访问接口(interface)中定义的方法,而不能访问任何成员变量(因为接口(interface)不能定义成员变量)。

因此,就状态而言,每个类仍然有一个父类(super class)。但就接口(interface)而言,它可以有任意多个父类(super class)型。

关于java - Java 8 中的 Default 是否破坏了不允许我们进行多重继承的整个想法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28976837/

相关文章:

java - 如何在 java 中使用 FTPClient 对象检索多个文件?

java - 如何使用 JTextArea 设置 JScrollPane 背景透明和 JScrollBarr 可见?

java - Apache 米娜 : Get local port to which remote client connected

java-8 - 在深层属性上收集 groupBy

java - 增强的 for 循环性能

java - Spring - 如何获取列表框jsp中的对象列表

java-8 - 无法弄清楚用法

java - 使用 Stream API 创建对象初始化循环

java - 即使我的Java主页旨在Java 8,gradle仍会引用Java 6

java - Thread.sleep 的方法引用不明确