迄今为止,在Java中,接口不能实现任何方法。根据定义,它们只是一组没有主体的方法签名。
但似乎在Java 8中有所改变。
这是真的吗?“默认方法”是什么?什么是“函数式接口”?有人可以向我解释一下吗?Google上的信息很混乱。
迄今为止,在Java中,接口不能实现任何方法。根据定义,它们只是一组没有主体的方法签名。
但似乎在Java 8中有所改变。
这是真的吗?“默认方法”是什么?什么是“函数式接口”?有人可以向我解释一下吗?Google上的信息很混乱。
接口
现在可以有实际实现的默认方法
了。这样做是为了帮助那些实现了已更改的接口
的用户避免问题,使他们不必更新其所有类。default
关键字来添加此功能。“默认方法”是什么?
默认方法提供了一种机制,使您可以向接口添加实现而不将其变成抽象类。
默认方法的主要用例是在不破坏其他人的代码的情况下添加方法到接口中。然而,它们还允许您通过实现接口来“混合”功能,这是 Java 类型系统的一个非常强大的补充,它过去只允许单行实现。
“函数式接口”是什么?
另一方面,“函数式接口”是告诉编译器您的接口将具有恰好一个方法的方法。作为交换,编译器为定义接口实现提供了更短的语法,从而显着缩短了依赖匿名类的代码。
除了上述两个特性之外,接口还允许您定义静态函数以在所有实现之间共享。与默认实现类似,这添加了一个“第二维度”的继承实现,因为它允许您通过接口实现共享代码。