JAVA8_新特性_接口

JAVA8的接口里的静态方法,可以有方法体,方法不是抽象的。
package com.wjb.interfaceDemo;

/**
 * Created by ptdy on 2017/5/18.
 */
public interface Java8 {
    public static void method1(){
        System.out.println("wjb");
    }
}

通过接口名直接调用

package com.wjb.interfaceDemo;

/**
 * Created by ptdy on 2017/5/18.
 */
public class Java8Test {
    public static void main(String[] args) {
        Java8.method1();
    }
}
JAVA8的接口里的非静态方法,可以有方法体,方法不是抽象的。必须加上default关键字,不然报错。
package com.wjb.interfaceDemo;
/**
 * Created by ptdy on 2017/5/18.
 */
public interface Java8 {
    public default void method2(){
        System.out.println("abc");
    }

}

但是不能通过接口名直接调用,必须通过实现类对象来调用。实现类不需要重写实现方法,因为接口的方法不是抽象的。

注意:(如果实现类要重写接口方法也行,不能加上default关键字,如果重写了方法,那么就会调用重写的方法内容)
package com.wjb.interfaceDemo;

/**
 * Created by ptdy on 2017/5/18.
 */
public class Java8Impl implements Java8 {

}
package com.wjb.interfaceDemo;

/**
 * Created by ptdy on 2017/5/18.
 */
public class Java8Test {
    public static void main(String[] args) {
        Java8Impl java8 = new Java8Impl();
        java8.method2();
    }
}

注意:如果一个类实现了多个接口中的方法,并且多个接口中的方法名一样,此时实现类必须重写方法,否则编译失败。

    原文作者:三碗才能饱
    原文地址: https://www.jianshu.com/p/b3ae88232157
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞