接口内的实现 - Java

时间:2015-09-15 08:53:08

标签: java

我们知道我们无法在java中的接口中实现函数。

我刚试过

public interface InvoiceService {

public static void getData(){
    System.out.print("this is my data");
 }
}

我能够执行此功能,为什么会这样?是因为函数被定义为static并且可以直接使用类名访问static variables而不创建对象?

2 个答案:

答案 0 :(得分:6)

因为您可能正在使用Java 8.在Java 8中,您可以在接口中添加静态方法以及默认方法。请阅读Java 8文档中有关静态和默认方法的更多信息

答案 1 :(得分:1)

  

是因为函数被定义为静态变量,静态变量可以直接使用类名访问而不创建对象吗?

您正在使用Java8,而您刚刚实现了default method

是的,该方法不需要通过任何已实现的类进行操作,并且属于接口。

是的,你不需要创建一个实例来访问它。您可以通过接口名称本身访问它。

由于这是一种静态方法,您可以将其用作任何常规实用方法

再次来自doc,

  

如果他们将它们作为静态方法添加,那么程序员会将它们视为实用方法,而不是必不可少的核心方法。