到目前为止,Java接口还不能实现任何方法。根据定义,它们只是一个没有主体的方法签名的集合。
但是,Java 8似乎改变了这一点。
这是真的吗?什么是“默认方法”?什么是“功能接口”?有人介意给我解释一下吗?谷歌上的事情很令人困惑。
发布于 2014-03-14 21:00:02
在Java8中,Interfaces现在可以有实际实现的default方法。这样做是为了帮助实现对Interface进行更改的用户避免出现问题,这样他们就不必更新所有的类。
通过将default关键字添加到方法签名中,可以添加此功能。
请参阅Java教程
发布于 2014-03-14 21:11:02
什么是“默认方法”?
默认方法为您提供了一种机制,可以将实现添加到接口中,而不使其成为抽象类。
默认方法的主要用例是将方法添加到接口中,而不破坏其他人的代码。但是,它们还允许您通过实现接口“混合”功能,这是Java类型系统的一个非常强大的附加功能,它只允许一行实现。
什么是“功能接口”?
另一方面,Functional是一种告诉编译器您的接口将有一个方法的方法。作为交换,编译器为定义接口实现提供了更短的语法,大大缩短了过去依赖于匿名类的代码。
除了上述两个特性之外,接口还允许您定义要在所有实现之间共享的静态函数。与默认实现一样,这为继承实现添加了“第二维度”,因为它允许您通过接口实现共享代码。
https://stackoverflow.com/questions/22415597
复制相似问题