結構 vs 類別
- 結構為值型別 (堆疊),類別為參考型別 (受控堆積)
- 結構資料操作速度較快
- 小型、多型別資料聚合、大量實例共用時結構效率更高
抽象方法 vs 虛擬方法
| 特性 | 抽象方法 | 虛擬方法 |
| 關鍵字 | abstract | virtual |
| 實作本體 | 無 (僅宣告) | 有預設實作 |
| 衍生類要求 | 必須 Override | 可選擇 Override |
| 所屬類別 | 必須在 abstract class | 一般類別即可 |
| 實例化 | 抽象類別不可 new | 虛擬類別可 new |
核心差異口訣
- 抽象方法 = 只有宣告、無實作、強制子類實作、視為「無本體的虛擬方法」
- 虛擬方法 = 有宣告有實作、子類可選擇覆寫、執行期依實際型別分派
- 抽象類別不可實例化,只能實例化實作完所有抽象方法的衍生類
- 若基類永不被直接實例化,應定義抽象方法強制契約
補充
兩者皆使用 override 重寫。虛擬方法與多型緊密相關,允許衍生類完整或部分重寫。