1. 程式人生 > >java8第二課:接口裡可以寫什麼

java8第二課:接口裡可以寫什麼

  這節課我們來講講java8裡介面可以寫什麼,再次強調,這種語法只在jdk1.8以上有效。

 

public class Java8InterfaceTeach {



    public static void main(String[] args) {

        //這裡會報錯是因為這個接口裡沒有未實現的抽象方法

        //要想使用lambda表示式,接口裡必須有且僅有一個未實現的抽象方法

        
Java8Interface java8Interface = new Java8Interface() {};         System.out.println(java8Interface.add(1,2));         System.out.println(Java8Interface.add("12","21"));     } } interface Java8Interface{    
/**      * default方法:      * java8裡允許在接口裡實現方法,不過要加default關鍵字,這樣的方法不算抽象方法,就和普通方法一樣      * 繼承該介面的介面或實現該介面的類可以不必重寫該方法,當然如果想要重寫也沒有問題      */     default int add(int i1, int i2)     {        
return i1 + i2;     }     /**      * 接口裡還可以寫靜態方法      */     static String add(String s1, String s2)     {         return s1 + s2;     } } /**  * 如果一個類實現了兩個介面,而這兩個介面中有方法名和引數表完全相同的預設實現方法(就是加了default的方法)  * 那麼這個類必須重寫這個方法  */ class Test implements interface1,interface2{     @Override     public int add(int i1, int i2) {         return i1 + i2;     } } interface interface1{     default int add(int i1, int i2)     {         return i1 + i2;     } } interface interface2{     default int add(int i1, int i2)     {         return i1 + i2 + 1;     } }