多型 方法的重寫 和 抽象類

2021-08-16 08:42:43 字數 989 閱讀 2605

1.多型

對於同乙個物件,身份不同時,呼叫同乙個方法會呈現出不同的狀態。

* 前提是:當父類和子類出現了完全一模一樣的方法。允許的

* 當父類和子類出現相同方法,父類會隱藏子類的方法呼叫。也就是說

* 當我們建立了老虎物件,但是將其看成是動物時。這個時候如果呼叫

* eat方法,呼叫不是老虎類中的eat,而是動物類中的eat方法。這就是

* 隱藏。

如果是有意隱藏,請使用關鍵字 new。

* 一旦在子類方法中加入了new關鍵字,那麼呼叫物件的這個方法時,

總結:只看當前身份,不看真實身份。

2.重寫

一旦物件建立出來之後。呼叫方法

重寫:和隱藏不同的是,一旦物件建立出來之後,呼叫方法

只看真實身份,不看當前身份。

寫法:父類方法必須用virtual關鍵字修飾,表示此方法可以被子類

重寫。如果子類要重寫父類的相同方法,必須使用override關鍵字

只看真實身份,不看當前身份。

必須要有繼承關係。

如果父類允許子類重寫自己的方法,就必須在此方法前加//virtual關鍵字

//如果子類重寫了父類的virtual方法,就必須在方法

//前加上override關鍵字

//如果乙個類重寫了父類的方法,也表名自己定義的這個方法

//可以被自己的子類所重寫

3.抽象類

annotation:在物件導向程式設計中,我們會設計一些模板類,讓其他來繼承。

//1、在抽象類中可以有抽象方法,用abstract關鍵字修飾的方法

//2、在抽象類中可以有普通方法

//3、和普通類不同的是,抽象類不可以例項化

//抽象方法只有方法的簽名,沒有定義(沒有實現過程)

//抽象方法的實現由子類完成

//只要父類的方法被virtual,override或abstract關鍵字修飾,那麼子類就可以重寫這些方法

多型 抽象方法 抽象類

類的多型主要指方法重寫 abstract關鍵字修飾的類 方法 就是抽象類 方法 方法重寫的要求 子類中重寫的方法要與父類中的方法同名 子類中重寫的方法形參個數要與父類中同名方法的形參個數一致 子類中重寫的方法型別要與父類中同名方法的型別一致 靜態 成員方法 子類中重寫的方法的訪問許可權不能低於父類中...

抽象類和多型

抽象類是乙個特殊的類,它的特殊之處在於只能被繼承,不能被例項化 從實現角度來看,抽象類與普通類的不同之處在於 抽象類中只能有抽象方法 沒有實現功能 該類不能被例項化,只能被繼承,且子類必須實現抽象方法。這一點與介面有點類似,但其實是不同的。匯入abc模組實現抽象類 import abc 定義抽象類,...

多型,抽象方法,抽象類,介面

向上轉型 使用父類型別的變數接收子類型別的物件 多型使用的方法和屬性都是子類和父類共有的內容,物件能夠呼叫的屬性和方法全部 於子類中的內容。子類獨有的方法和屬性是不能使用的 向下轉型 如果向上轉型後,需要呼叫子類獨有的方法和屬性時,就需要向下轉型,必須是先有向上轉型,才會有向下轉型。一般用insta...