C 中多型性的實現

2022-09-26 02:33:11 字數 1033 閱讀 5903

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.多型性的概念 多型性是指用乙個名字定義不同的函式,這函式執行不同但又類似的操作,從而實現 乙個介面,多種方法 多型性的實現與靜態聯編 動態聯編有關。靜態聯編支援的多型性稱為編譯時的多型性,也稱靜態多型性,它是通過函式過載和運算子過載實現的。動態聯編支援的多型性稱為執行時的多型性,也...