Java 8引入了接口上的默认方法和静态方法。因此,您现在可以在接口中使用默认方法或静态方法来实现具体的功能。
Java声称添加这两种新方法的原因是“确保与旧版本接口编写的代码的二进制兼容性”。
我的问题:
- 为什么要扭曲接口的原始概念以支持现有的架构问题?
- 除了类能够实现多个接口之外,使用抽象类和新版本的接口有何区别?
Java 8引入了接口上的默认方法和静态方法。因此,您现在可以在接口中使用默认方法或静态方法来实现具体的功能。
Java声称添加这两种新方法的原因是“确保与旧版本接口编写的代码的二进制兼容性”。
我的问题:
一个类可以扩展多个接口的能力与接口和抽象类的另一个区别密切相关,即接口不能包含状态。这是允许多重继承的主要困难:如果一个超类在类的祖先中出现多次,那么该超类的状态会出现一次还是几次?(这就是所谓的“菱形问题”。)除了一个类可以扩展多个接口的能力,使用抽象类和接口的新版本之间有什么区别?