wdcp创建多个网站,网站备案密码查询,wordpress转帝国cms,小程序开发者工具教程JDK1.8的接口新特性
JDK7及其之前1、接口的变量都是public final static 全局静态常量#xff0c;无变化。2、接口中都是抽象abstract方法#xff0c;不能有static方法#xff08;因为abstract和static、final、private不能共存#xff09;JDK1.8及其之后1、接口中可以添加…JDK1.8的接口新特性
JDK7及其之前1、接口的变量都是public final static 全局静态常量无变化。2、接口中都是抽象abstract方法不能有static方法因为abstract和static、final、private不能共存JDK1.8及其之后1、接口中可以添加抽象方法static实现类不能重写只能通过接口名调用。2、如果子类中定义了相同名字的静态方法那就是完全不同的方法了直接从属于子类。可以通过
变量名直接调用。3、接口中可以添加非抽象方法default实现列可以重写只能通过对象名来调用4、实现类可以直接使用default方法可以重写default但是必须去掉default。5、上级接口中default方法的调用MyInterface.super.method2()提供非抽象方法的目的1、为了解决实现该接口的子类代码重复问题2、为了既有的的成千上万的Java类库增加的新功能且不必对这些类重新进行设计。
public interface MyInterface {public static final double PI 3.14;public abstract void method1();public static void method2(){System.out.println(JDK1.8中的非抽象方法有两种一种是static的);}public default void method3(){System.out.println(JDK1.8中的非抽象方法有两种一种是default的);}public static void main(String[] args) {MyInterface.method2();}
}public class MyClass implements MyInterface{Overridepublic void method1() {System.out.println(接口中的抽象方法子类必须实现);}Overridepublic void method3() {MyInterface.method2();MyInterface.super.method3();System.out.println(重写接口中default方法须将default去掉);}public static void main(String[] args) {MyInterface mi new MyClass();mi.method1();MyInterface.method2();mi.method3();}
}
运行代码如下