首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 類別與介面、虛擬/抽象方法、值/參考型別差異總結 (2)

     編輯:關於C語言

結構 vs 類別

  1. 結構為值型別 (堆疊),類別為參考型別 (受控堆積)
  2. 結構資料操作速度較快
  3. 小型、多型別資料聚合、大量實例共用時結構效率更高

抽象方法 vs 虛擬方法

特性抽象方法虛擬方法
關鍵字abstractvirtual
實作本體無 (僅宣告)有預設實作
衍生類要求必須 Override可選擇 Override
所屬類別必須在 abstract class一般類別即可
實例化抽象類別不可 new虛擬類別可 new

核心差異口訣

  • 抽象方法 = 只有宣告、無實作、強制子類實作、視為「無本體的虛擬方法」
  • 虛擬方法 = 有宣告有實作、子類可選擇覆寫、執行期依實際型別分派
  • 抽象類別不可實例化,只能實例化實作完所有抽象方法的衍生類
  • 若基類永不被直接實例化,應定義抽象方法強制契約

補充

兩者皆使用 override 重寫。虛擬方法與多型緊密相關,允許衍生類完整或部分重寫。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved