有人可以帮助我理解为什么他们会在 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/