Java 8中default方法能做什么?不能做什么?
Java 8 发布以后,可以给接口添加新方法,但是,接口仍然可以和它的实现类保持兼容。这非常重要,因为你开发的类库可能正在被多个开发者广泛的使用着。有了Java 8,是不是就没有这种危险了?接口中被实现的方法叫做 default 方法,用关键字 default 作为修饰符来标识。这就是为什么当接口发生改变的时候,实现类不需要做改动的原因。当一个类实现了多于一个接口,而这些接口又有同样的 default 方法的时候,事情就变得很复杂了。在这种情况下,类要自己来实现 default 方法(才可以)。Java 8试图避免不明确的东西,保持严谨。如果一个方法在多个接口中都有声明,那么,任何一个 default 实现都不会被继承,你将会得到一个编译时错误。在这一点上,Java 8是不一致的。
用户评论