Java中抽象類和介面的區別


在Java中,抽象是透過抽象類和介面實現的。兩者都包含抽象方法,子類或實現類必須實現這些方法。以下是抽象類和介面之間的一些重要區別。

序號 關鍵點 抽象類 介面
1 支援的方法 抽象類可以同時具有抽象方法和具體方法。 介面只能包含抽象方法。從Java 8開始,它可以包含預設方法和靜態方法。
2 多重繼承 不支援多重繼承。 介面支援多重繼承。
3 支援的變數 支援final、非final、static和非static變數。 只允許static和final變數。
4 實現 抽象類可以實現介面。 介面不能實現介面,它可以擴充套件介面。
5 關鍵字 抽象類使用abstract關鍵字宣告。 介面使用interface關鍵字宣告。
6 繼承 抽象類可以使用extends關鍵字繼承另一個類並實現介面。 介面只能繼承介面。
7 繼承 抽象類可以使用extends關鍵字繼承。 介面只能使用implements關鍵字實現。
8 訪問許可權 抽象類可以具有任何型別的成員,例如private、public。 介面只能具有public成員。

抽象類與介面示例

public class JavaTester {
   public static void main(String args[]) {
      Animal tiger = new Tiger();
      tiger.eat();
      Cat lion = new Lion();
      lion.eat();
   }
}
interface Animal {
   public void eat();
}
class Tiger implements Animal {
   public void eat(){
      System.out.println("Tiger eats");
   }
}
abstract class Cat {
   abstract public void eat();
}
class Lion extends Cat{
   public void eat(){
      System.out.println("Lion eats");
   }
}

輸出

Tiger eats
Lion eats 

更新於: 2023年12月8日

5000+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告