接口 Interface 與抽象類 abstract class 的區別

接口:spa

全部方法都是抽象方法,只能有成員變量,只能是方法的聲明。且成員變量是默認的 public static final 類型,接口不能實例化本身。方法隱式指定是 public abstract 。通常狀況下不在接口定義變量。對象

 

抽象類:繼承

一個類含有抽象方法,就能夠叫抽象類。抽象類類前必須使用 abstract 關鍵字修飾,能夠有成員變量。能夠聲明普通方法與抽象方法。抽象類不能建立對象。抽象方法只有聲明,沒有具體實現。一個類繼承抽象類,必須實現父類的抽象方法。若是不這麼作,子類也是抽象類。接口

 

抽象方法:必須是 public 或者 protected ,不能是 private ,子類就不能繼承了。變量

 

抽象類與接口區別:方法

  1. 抽象類在 Java 中表示是一種繼承關係,一個類只能使用一次繼承關係,一個類卻能夠實現多個接口。
  2. 接口與抽象類的方法、成員變量比較。
  3. 實現接口與抽象類的類必須實現其中全部方法。抽象類若是不實現全部抽象方法,子類仍是抽象類。接口也能夠繼承接口,此時不須要實現父類接口。
  4. 接口中的變量是默認的,必須給初值,因此實現類不能改變。
  5. 接口中方法只能是抽象方法 public abstract 方法,不能是 static 方法,static 方法是類方法,他不容許子類重寫。
相關文章
相關標籤/搜索