概述
Java8带来了一些全新的特性,包括lambda表达式、函数接口、方法引用、流、可选方法、接口中的静态方法和默认方法。
在本文中,我们将深入讨论为什么java8接口新增了默认方法,如何使用默认方法,并讨论一些有用的用例。
静态方法
接口中的静态方法和类中定义的静态方法一样,不属于特定对象,所以它们不是实现接口的api的一部分,必须使用InterfaceName.staticMethod来调用它们。
为了理解静态方法如何在接口中工作,让我们看一个实例:
interface NewInterface {
// 静态方法
static void hello()
{
System.out.println("Hello, New Static Method Here");
}
// 抽象方法
void overrideMethod(String str);
}
// 实现类
public class InterfaceDemo implements NewInterface {
public static void main(String[] args)
{
InterfaceDemo interfaceDemo = new InterfaceDemo();
// 调用接口静态方法
NewInterface.hello();
// 调用被覆写后抽象方法
interfaceDemo.overrideMethod("Hello, Override Method here");
}
// 实现接口方法
@Override
public void overrideMethod(String str)
{
System.out.println(str);
为什么接口要支持静态方法
接口中的静态方法背后的思想是提供一种简单的机制,允许通过将相关的方法内聚在接口中,而不必创建新的对象。
抽象类也可以做同样的事情。主要的区别在于抽象类可以有构造函数、成员变量和方法。
推荐把和只和接口相关的静态utility方法放在接口中(提高内聚性),而不需要额外创建一些utility类专门去放置这些方法。
参考资料
Baeldung – Static and Default Methods in Interfaces in Java
geeksforgeeks – Static method in Interface in Java
最新评论
您好 请问您是怎么解决这个问题的
问题解决了,谢谢!
我在运行./solc-select/scripts/install.sh的时候出现下面的问题, Installing solc versions into /home/zxy/.solc-select
您好,我按您的步骤从linux系统上做了好几遍,每次做完都是输入which solc有显示,但是输入solc--version没有任何显示,请问可以加您个联系方式吗,我想把我做的的截图给您看一下,您看
我知道了 直接在Ubuntu的设置中配置就好了
想问一下,这样设置了以后,浏览器还是无法翻墙,该怎么操作呢?
直接安装编译好的驱动,需要安装哪些依赖呢?
世明,这个软件还要钱?