多型:即指多個不同的類對同乙個方法的不同實現。多型允許子類對從父類繼承的方法進行重新實現
多型的使用在c#中,子類使用new關鍵字來隱藏父類成員,通過方法的隱藏和方法的重寫實現多型。
**第一種方法的隱藏:**實際呼叫父類方法
//定義人類,包含工作方法
class
person
}//定義醫生類和程式設計師類
class
docter
:person
}class
programmer:person
}//建立人、醫生、程式設計師的物件
static
void
main
(string
args)
注意: 在子類中定義和父類同名的方法,不使用new關鍵字,子類中的方法也可以隱藏父類中的同名方法,但編譯器將發出警告。
第二種方法重寫::1 呼叫子類的方法
方法重寫的**示例:(注意**中的注釋)
//父類方法定義為虛方法(使用virtual關鍵字)
class
person
}//子類重寫方法(使用override關鍵字)
class
doctor:person
}//建立子類物件,並呼叫工作方法
static
void
main
(string
agrs)
注意:重寫方法時,子類和父類方法的返回值型別、方法名和引數必須完全相同,子類方法的可訪問性不能低於父類方法。父類中希望子類繼承的方法使用virtual關鍵字修飾為虛方法。如果父類方法沒有使用virtual關鍵字,那麼子類只能隱藏方法而不能重寫。
1、密封類使用sealed修飾,不能用作父類。因此,密封類主要用於防止派生子類(派生子類:就是兒子與父親的關係:class a{};class a{};a是父親、a是兒子體現在定義類時a:a可以這盲麼說:a派生了a,a繼承了a)。
2、密封類可以用來限制類的擴充套件性,當在程式中密封了某個類時,其他類不能從該密封類繼承。
語法:
sealed class 類名{}
注意:由於密封類不能被繼承,所以類中的方法不能定義為虛方法。
class
role
}class
warrior
:role
}class
knight
:role
}
注意:sealed修飾方法時只能與override一起使用,防止重寫的方法再次被重寫 物件導向程式設計 多型
多型 多種狀態 的基本介紹 方法或物件具有多種形態,是物件導向的三大特徵,多型是建立在封裝和繼承的基礎之上的。多型的具體體現 1 方法的多型 2 物件的多型 乙個物件的編譯型別和執行型別可以不一致 編譯型別在定義物件時就確定了不能改變 執行型別是可以改變化的 編譯型別看定義時 號 的左邊,執行型別看...
C 物件導向 多型
一 對於繼承自同一基類的多個不同派生類的例項,在執行時可以將它們賦值給基類型別的變數,訪問該變數的同乙個成員會根據該變數執行時型別的不同而產生不同的行為,這個特性即被稱為多型 polymorphism 多型允許以同一種方式訪問同乙個變數的成員而產生不同的行為 1.在c 中,每個型別都是多型的,因為包...
Python 物件導向程式設計 多型
多型 傳入不同的物件,產生不同的效果 多型是一種使用物件的方式,子類重寫父類方法,呼叫不同子類物件的相同父類方法,可以產生不同的執行結果 好處 呼叫靈活,更容易編寫出通用的 做出通用的程式設計,以適應需求的不斷變化。實現步驟 1.定義父類,並提供公共方法 2.定義子類,並重寫父類方法 3.傳遞子類物...