「多態性」一詞最早源於生物學,指同一物種生物體擁有相同特徵。在 C# 程式設計中,多態性意指:同一操作作用於不同類別的實例時,不同類別會給出不同解釋,進而產生不同的執行結果。C# 支援兩種主要的多態形式:
透過方法多載與運算子多載實現。編譯器在編譯階段,根據傳遞的參數型別、數量及回傳型別等資訊,決定具體呼叫哪個方法。特點是執行速度快、效率高。
透過虛擬成員(virtual/override)實現。直到程式執行時,才根據實際物件型別決定呼叫哪個方法實作。這帶來了高度的彈性與抽象能力,是物件導向設計的核心支柱之一。
實務開發中,常結合介面與抽象類別,善用執行時多態建立可擴充的框架;對於單純的資料操作或工具方法,則優先採用編譯時多態以簡化程式碼。