iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
自我挑戰組

學習C#續系列 第 9 篇

Day 9:介面實作與多型(Interface & Polymorphism)

  • 分享至 

  • xImage
  •  

介面的實作方式:

  • 使用冒號語法 : 進行實作。
  • 實作類別必須實作介面定義的所有成員(方法、屬性、事件等),且方法存取層級必須公開為 public(隱式實作時)。
  • 介面成員不使用 override 關鍵字(與抽象類別不同)。

實作多個介面(突破單一繼承限制):

  • C# 類別只能繼承一個父類別(包含抽象類別),但可以同時實作多個介面。
  • 多個介面之間以逗號 , 分隔。若同時有父類別,父類別名稱必須寫在第一個順位。

介面實作多型(Interface Polymorphism):

  • 以介面作為型別來宣告變數或集合(例如 ILogger logger = new ConsoleLogger(); 或 List)。
  • 呼叫端只關注「物件能提供什麼功能(介面規格)」,而不關心底層是由哪個特定類別實作,達到鬆散耦合(Loose Coupling)。

介面 vs 抽象類別之定位:

  • 抽象類別:強調「本質是什麼(is-a)」,用於抽取具有共同層級與基礎邏輯的類別家族,提供部分具體實作與程式碼重用。
  • 介面:強調「具備什麼能力或行為規格(can-do)」,用於跨越不相關的類別家族賦予統一的呼叫標準。

實作範例

https://ithelp.ithome.com.tw/upload/images/20260922/20178925oW94FThnDH.png

https://ithelp.ithome.com.tw/upload/images/20260922/201789253V4Ta7BHyp.png

https://ithelp.ithome.com.tw/upload/images/20260922/20178925LybN4gqIXv.png

https://ithelp.ithome.com.tw/upload/images/20260922/20178925BU9hMpuxWY.png


上一篇
Day 8: 抽象類別(Abstract Class)、密封類別(Sealed Class)、介面(Interface)
下一篇
Day 10:泛型(Generics)
系列文
學習C#續 共 21 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言