1. 程式人生 > >介面 抽象類 繼承 區別

介面 抽象類 繼承 區別

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的, 

另外,實現介面的一定要實現接口裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。 

還有,介面可以實現多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個介面實現多重繼承,介面還有標識(裡面沒有任何方法,如Remote介面)和資料共享(裡面的變數全是常量)的作用.

==================================================================================================
抽象類,使部分抽象,它是可以帶有一些有方法體的方法的
介面,的所有方法都是抽象的
抽象類是模板,介面是規範 
==================================================================================================
介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,沒有方法體,不能有構造方法,只能有構造方法 

===============================================
一個類可以有多個介面 只能有繼承一個父類
抽象類可以有構造方法,介面中不能有構造方法。
抽象類中可以有普通成員變數,介面中沒有普通成員變數
接口裡邊全部方法都必須是abstract的 抽象類的可以有實現了的方法
抽象類中的方法的訪問型別可以是public,protected   但介面中的抽象方法只能是public型別的,並且預設即為public abstract型別
抽象類中可以包含靜態方法,介面中不能包含靜態方法
抽象類和介面中都可以包含靜態成員變數,抽象類中的靜態成員變數的訪問型別可以任意,但介面中定義的變數只能是public static final型別,並且預設即為public static final型別。
抽象類可以有普通成員變數,介面不行;
抽象類有非抽象的方法和構造方法,並且修飾符可以是私有的,介面只能是抽象的方法,並且修飾符是public,最後說一句只能繼承一個抽象類,但能實現多個介面。