java中接口中成員的定義


java中的接口的作用是提供編程框架,它作為統一的規范讓其他類進行擴展,是java中非常優秀的設計。

這娃用以下代碼總結了java中接口可以定義的成員以及它們默認被修飾的關鍵字:

//外部接口的訪問修飾符只能是public或默認修飾符 ,並且它的成員只能用public訪問修飾符修飾, 接口不能用final修飾
public interface A {        
    //成員變量,默認用public static final 修飾
    String name="ahei";        
    
    //成員方法,默認用public abstract 修飾
    void abstractMethod();                
    
    //內部接口,默認用public static 修飾
    interface Interf{}
    
    //內部類,默認用public static 修飾
    class InnerClass{}
    
    //靜態方法,默認用public修飾,接口中的靜態方法不能用final修飾
    static void staticMethod(){}
    
    //默認方法,可提供方法實現,作為庫、框架向前兼容的手段
    default void defaultMethod(){        
        System.out.println("haha");
    }
    
    public static void main(String[] args){
        //以下說明接口中的類成員和接口成員都是默認用static修飾的        
        new A.Interf() {
        };
        new A.InnerClass();
        
        //靜態方法的調用在編譯期就已經確定,由聲明的類型決定
        C c=new D();
        c.set();   //輸出C
        
        //默認方法通過對象調用
        new F().defaultMethod();    
    }
}

//靜態方法也能重寫,不過它們屬於各自的類,不會有運行時多態
class C {
    static void set() {
        System.out.println("C");
    }
}

class D extends C {
    static void set() {
        System.out.println("D");
    }
}

class F implements A{
    @Override
    public void abstractMethod() {}
}

java的接口中還可以定義枚舉類,並且接口中的靜態方法和默認方法是java8新增的,默認方法可為接口提供新的功能,並且不影響老版本代碼的實現,保證了向前兼容。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM