• Class

    • 類別名稱
      • Attribute:狀態
      • Method:方法
    • 基本上都是使用類別來定義。儘量避免使用Struct結構。
  • Abstract Class

    • 抽象類別名稱
      • Attribute:狀態
      • Method:方法
    • 不能被實例化,只能被繼承。主要用於定義共享的介面或部分實作。
    • 強制子類別實現剩餘的部分,促使繼承關係。
  • Interface

    • 介面名稱
      • Method:方法
    • 無法保存狀態,只能定義方法。
    • 定義契約行為,介面可包含一組成員(方法、屬性、事件等)。
    • 任何實作該介面的類別都必須實作這些成員。
    • 介面的作用包括解耦合、分離介面與實作。

抽象類別主要提供共享功能和部分實作,而介面則定義規範和行為契約。

繼承與泛化

  • 繼承

    • 是指一個類別可以從另一個類別中繼承屬性和方法。
  • 泛化

    • 泛化關係用於表示子類如何特化父類的所有特徵和行為。
    • 例如,老虎是動物的一種,老虎擁有動物的共性特徵和特性。

類別層級的抽象性

  • 越上層的類別理論上越抽象。
  • 當繼承後實現更多功能時,類別會變得越具象。

在物件導向設計中,適當選擇使用類別、抽象類別和介面可以幫助組織程式碼、提高代碼的重用性和可擴展性。

參考 : Will保哥 C#語言特性課程 microsoft .Net