多態性是物件導向程式設計(OOP)中的一個核心概念,它允許不同類別的對象被當作是一個共同父類的對象來處理。這使得單一介面可以代表不同的底層形態(資料型態)。多態性一詞來自希臘語的「poly」(意為許多)和「morph」(意為形狀或外形),字面意思是「多種形態」。在物件導向程式設計中,主要有兩種類型的多態性:編譯時多態性(或靜態多態性)和運行時多態性(或動態多態性)。
編譯時多態性,也稱為靜態多態性,是通過在同一個類中進行方法重載或運算符重載來實現的。它允許多個方法或函數有相同的名稱但參數不同。決定調用哪個方法的過程在編譯時進行,因此得名。
運行時多態性,也稱為動態多態性,是通過繼承和介面(在某些語言中)實現的。它允許在執行時刻,一個對象變數參考不同類型的對象,並通過這個參考調用在不同類中實現的方法。運行時多態的典型實現是方法覆蓋。
多態性是物件導向程式設計中非常重要的一部分,它提高了程式碼的可重用性和擴展性,同時也使得程式碼更容易理解和維護。