今天覆習一下Java的基礎知識,之前對於介面只有一個比較籠統的概念,經過一晚上的梳理,整理如下:它一種抽象型別,用於定義一組方法和常量。是Java多型性的重要體現。
- 定義介面
- 使用 interface 關鍵字來定義,例如 public interface MyInterface{} 。介面中的成員變數預設是 public static final 的,所以一般都是大寫字母命名,定義時就必須賦值,比如 int MAX_VALUE = 100; 。
- 方法預設是 public abstract ,在介面裡只寫方法簽名,如 void methodName(); 。
- 介面的實現
- 一個類透過 implements 關鍵字實現介面,如 class MyClass implements MyInterface 。如果這個類沒有實現介面中的所有方法,那麼這個類必須被定義為抽象類。
- 實現介面的類要實現介面中定義的所有方法,而且方法的可見性必須是 public (因為介面中的方法預設是 public )。
- 介面的作用
- 實現多型:可以有多個類實現同一個介面,這些類的物件都可以被當作介面型別來使用。例如有一個 Drawable 介面, Circle 類和 Rectangle 類都實現了它,當有一個方法引數是 Drawable 型別時,就可以傳入 Circle 或者 Rectangle 的物件,實現不同的繪製行為。
- 定義規範:介面就像是一個契約,規定了實現它的類必須要做什麼。比如 java.util.List 介面定義了列表操作的規範, ArrayList 和 LinkedList 都實現這個介面,保證了它們都能進行諸如新增、刪除元素等操作。
- 解耦程式碼:在大型專案中,介面可以降低類與類之間的耦合度。比如一個程式的模組A透過介面呼叫模組B的功能,只要模組B實現介面的功能不變,具體實現細節可以隨意修改,而不會影響模組A的呼叫。