第一点:不可以直接通过接口.方法名()调用
1.首先定义一个接口如下:
public interface MyInterfaceOfDefaultJava8 { default void test() { System.out.println("我在测试static静态方法"); }; }
编写主入口测试代码如:在主程序中静态方法才能被接口直接访问,这也是JVM的知识点。类加载顺序的问题
第二点:接口的实现类实例可以调用接口中的default修饰的方法。default修饰的方法不是抽象方法,所以实现接口时实现类不需要实现接口中的default修饰的方法。当然也可以去实现方法
如实现类代码:
public class MyInterfaceOfDefaultImplJava8 implements MyInterfaceOfDefaultJava8{ }
测试代码如下:
public static void main(String[] args) { MyInterfaceOfDefaultImplJava8 defaultObject = new MyInterfaceOfDefaultImplJava8(); defaultObject.test(); }
第三点:default修饰的方法可以被子接口继承的,也就是通过子接口继承了default修饰的方式之后,通过实现类的实例就可以调用该方法了。