物件導向 多型

2021-10-01 21:32:43 字數 1173 閱讀 7020

多型性意味著有多重形式。在物件導向程式設計正規化中,多型性往往表現為"乙個介面,多個功能"。

多型性可以是靜態的或動態的。在靜態多型性中,函式的響應是在編譯時發生的。在動態多型性中,函式的響應是在執行時發生的。

在編譯時,函式和物件的連線機制被稱為早期繫結,也被稱為靜態繫結。c#提供了兩種技術來實現靜態多型性。分別為:

函式過載

運算子過載

可以在同乙個範圍內對相同的函式名有多個定義。函式的定義必須彼此不同,可以是引數列表中的引數型別不同,也可以是引數個數不同。不能過載只有返回型別不同的函式宣告。

總結:函式名相同,函式的引數列表(引數型別,個數,不同型別的排列順序)不同

動態多型性是通過抽象類虛方法實現的。

c#允許您使用關鍵字abstract建立抽象類,用於提供介面的部分類的實現。當乙個派生類繼承自該抽象類時,實現即完成。抽象類包含抽象方法,抽象方法可被派生類實現。派生類具有更專業的功能。

有關抽象類的一些規則:

不能建立乙個抽象類的例項

不能在乙個抽象類外部宣告乙個抽象方法。

抽象函式只能在抽象類內宣告,無法在正常類中使用。

抽象類中可以宣告正常函式

abstract

class

person

}

class

student

:person

}

繼承了抽象類,則必須要實現抽象函式,實現=重寫抽象函式

當有乙個定義在類中的函式需要在繼承類中實現時,可以使用虛方法。虛方法是使用關鍵字virtual宣告的。虛方法可以在不同的繼承類中有不同的實現。對虛方法的呼叫是在執行時發生的。

有關虛擬類的一些規則:

虛擬類其實指的是正常類中的虛擬方法,所以虛擬類可以直接使用例項

虛擬方法是在方法前加virtual關鍵字

虛函式和正常函式無區別

子類繼承虛擬類可以實現虛擬方法也可以不實現虛擬方法。實現=重寫方法

class

person

}

class

student

:person

}

物件導向 多型

繼承是多型的基礎,是指物件的多種形態 1.引用的多型 1 父類的引用可以指向本類的物件 2 父類的引用可以指向子類的物件 注意 子類的引用不能指向父類的物件 2.方法的多型 1 建立本類物件時,呼叫的方法是本類的方法 2 建立子類物件時,呼叫的方法是子類重寫的方法或是繼承的方法 注意 如果是子類獨有...

物件導向 多型

多型可以簡單的概括為 乙個介面,多種方法 在程式執行過程中才決定呼叫的函式,簡單的說就是,允許將子類型別的指標賦值給父類型別的指標,賦值後,父類物件就可以根據當前賦給它的子類物件的特徵以不同的方式執行。容易混淆的兩個概念 是指允許存在多個同名的函式,而這些函式的參數列不同 或許引數個數不同,或許引數...

物件導向 多型

多型 可以理解為事物存在的多種體現形態。人 男人,女人 動物 貓,狗。貓 x new 貓 動物 x new 貓 1,多型的體現 父類的引用指向了自己的子類物件。父類的引用也可以接收自己的子類物件。2,多型的前提 必須是類與類之間有關係。要麼繼承,要麼實現。通常還有乙個前提 存在覆蓋。3,多型的好處 ...