我们知道我们无法在java中的接口中实现函数。
我刚试过
public interface InvoiceService {
public static void getData(){
System.out.print("this is my data");
}
}
我能够执行此功能,为什么会这样?是因为函数被定义为static
并且可以直接使用类名访问static variables
而不创建对象?
答案 0 :(得分:6)
因为您可能正在使用Java 8.在Java 8中,您可以在接口中添加静态方法以及默认方法。请阅读Java 8文档中有关静态和默认方法的更多信息
答案 1 :(得分:1)
是因为函数被定义为静态变量,静态变量可以直接使用类名访问而不创建对象吗?
您正在使用Java8,而您刚刚实现了default method
是的,该方法不需要通过任何已实现的类进行操作,并且属于接口。
是的,你不需要创建一个实例来访问它。您可以通过接口名称本身访问它。
由于这是一种静态方法,您可以将其用作任何常规实用方法
再次来自doc,
如果他们将它们作为静态方法添加,那么程序员会将它们视为实用方法,而不是必不可少的核心方法。