c#語言三大特性:繼承,封裝,多型
一:多型性
多型是指乙個行為具有多個不同表現形式的能力,在c#中通過多型性的檢測時機可以分為靜態多型性和動態多型性
靜態多型性:函式過載和運算子過載
動態多型性:抽象方法、重寫方法、隱藏方法
二:函式過載(overlode)
——函式名必須相同
——函式引數型別不同
——函式引數個數不同
——函式引數順序不同
三:抽象(abstract)
——包含抽象函式的類,類也必須定義為抽象的
——抽象函式只有定義沒有函式體,並且必須定義為public
——抽象類中可以包含普通函式和抽象函式
——抽象類不能例項化,不能使用抽象類去構造物件,但是可以使用抽象類去宣告物件
可以在類前新增sealed關鍵字,使類變為密封類,密封類有以下特點:
——不能被繼承,所以密封類中不能定義虛方法和抽象方法,抽象類不能定義為sealed
——重寫的方法可以宣告為密封方法,表示該方法不能被子類重寫
四:虛方法(virtual)
抽象方法與虛方法區別:
——抽象函式不能有函式體,虛函式必須有函式體
——當繼承了乙個抽象類時,必須去實現抽象函式,抽象函式也只能在子類中去實現。但是虛函式可以在基類實現也可以在子類重寫
——抽象函式必須在抽象類中,虛函式不必須在抽象類中
五:重寫方法(override)與隱藏方法(new)
——隱藏方法的呼叫(用什麼型別來宣告,在呼叫方法的時候就會呼叫什麼型別的方法)
——重寫方法的呼叫(用什麼型別來構造,在呼叫方法的時候就會呼叫什麼型別的方法)
class enemy
public virtual void attack() }
class boss : enemy
public new void move() }
class mainclass
}v程式設計客棧irtual與new的原理:
本文標題: c#中多型性的實現
本文位址:
C 中的多型性
首先理解一下什麼叫多型。同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果,這就是多型性。多型性通過派生類覆寫基類中的虛函式型方法來實現。多型性分為兩種,一種是編譯時的多型性,一種是執行時的多型性。編譯時的多型性 編譯時的多型性是通過過載來實現的。對於非虛的成員來說,系統在編譯時,根據傳...
C 中的多型性
多型 polymorphism 在c 中可以簡單地概括為 通用乙個介面,實現多種方法 它是物件導向程式設計領域的核心概念,只有程式在執行時才決定呼叫對應的函式。c 多型性是通過虛函式來實現的,虛函式允許子類重新定義成員函式,而子類重新定義父類的做法稱為覆蓋 override 或者稱為重寫。重寫的話可...
C 的多型性
c 的多型性 1.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...