接口和抽象有什麼區別?

接口和抽象有什麼區別?

接口和抽象是 Java 面向對象設計的兩個基礎機制。

接口是對行爲的抽象,它是抽象方法的集合,利用接口可以達到API 定義和實現分離的目的

  • 接口不能實例化,
  • 接口不能包含任何非常量成員,任何 field 隱含 public field final的意義
  • 非靜態方式實現,要麼是抽象方法,要麼是靜態方法。

抽象類不能實例化,用 abstract 關鍵字修飾 class, 其主要目的是代碼重用

  • 抽象類和普通 Java 類在形式上沒有太大區別。 可以有一個或者多個抽象方法,- 抽象類大多用於抽取 Java 類共用方法實現或者共同成員變量。然後通過繼承的方式到達代碼複用的目的。

接口和抽象區別

  • 接口 Java 類實現 interface 使用 implements 關鍵詞
  • 繼承 抽象類是使用 extends 關鍵詞
  1. 支持多重繼承:接口支持;抽象類不支持;類不支持;
  2. 支持抽象函數:接口語義上支持;抽象類支持;類不支持;
  3. 允許函數實現:接口不允許;抽象類支持;類允許;
  4. 允許實例化:接口不允許;抽象類不允許;類允許;
  5. 允許部分函數實現:接口不允許;抽象類允許;類不允許。
  6. 定義的內容:接口中只能包括public函數以及public static final常量;抽象類與類均無任何限制。
  7. 使用時機:當想要支持多重繼承,或是爲了定義一種類型請使用接口;

當打算提供帶有部分實現的“模板”類,而將一些功能需要延遲實現請使用抽象類;當你打算提供完整的具體實現請使用類。

public class ArrayLis<E> extends AbsractLis<E&
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章