/* JDK8版本接口新特性: 1.允许定义非抽象方法,需要加入default关键字 -作用:利于解决接口升级的问题 -注意事项: 1.public可以省略,default不可以省略 2.默认方法可以被实现类重写,但需要去掉default关键字 3.如果实现了多个接口,多个接口中存在相同的默认方法,实现类必须重写默认方法 2.允许定义静态方法 -注意事项: 1.public可以省略,但static不能省略 2.接口中的静态方法,只允许使用接口名来调用,不允许实现类通过对象调用 */ public class InterfaceTest { public static void main(String[] args) { AInterImpl a = new AInterImpl(); a.method(); Inter.function(); } } interface Inter{ void show(); void print(); default void method(){ System.out.println("Inter...method"); } static void function(){ System.out.println("Inter...static...function"); } } class AInterImpl implements Inter{ @Override public void method() { Inter.super.method();//接口并不是严格意义上的父类,所以super前带有接口名 } @Override public void show() { System.out.println("AInterImpl...show"); } @Override public void print() { System.out.println("AInterImpl...print"); } } class BInterImpl implements Inter{ @Override public void show() { System.out.println("BInterImpl...show"); } @Override public void print() { System.out.println("BInterImpl...print"); } } 输出如下: Inter...method Inter...static...function
01-22
2560
03-06
727