-
Class
- 類別名稱
- Attribute:狀態
- Method:方法
- 基本上都是使用類別來定義。儘量避免使用Struct結構。
- 類別名稱
-
Abstract Class
- 抽象類別名稱
- Attribute:狀態
- Method:方法
- 不能被實例化,只能被繼承。主要用於定義共享的介面或部分實作。
- 強制子類別實現剩餘的部分,促使繼承關係。
- 抽象類別名稱
-
Interface
- 介面名稱
- Method:方法
- 無法保存狀態,只能定義方法。
- 定義契約行為,介面可包含一組成員(方法、屬性、事件等)。
- 任何實作該介面的類別都必須實作這些成員。
- 介面的作用包括解耦合、分離介面與實作。
- 介面名稱
抽象類別主要提供共享功能和部分實作,而介面則定義規範和行為契約。
繼承與泛化
-
繼承
- 是指一個類別可以從另一個類別中繼承屬性和方法。
-
泛化
- 泛化關係用於表示子類如何特化父類的所有特徵和行為。
- 例如,老虎是動物的一種,老虎擁有動物的共性特徵和特性。
類別層級的抽象性
- 越上層的類別理論上越抽象。
- 當繼承後實現更多功能時,類別會變得越具象。
在物件導向設計中,適當選擇使用類別、抽象類別和介面可以幫助組織程式碼、提高代碼的重用性和可擴展性。
參考 : Will保哥 C#語言特性課程 microsoft .Net