C 重寫(override),虛擬,抽象,隱藏

2021-10-01 22:43:14 字數 1399 閱讀 8272

在父類中有乙個方法,但是子類中也需要這個方法的名稱,但是子類中的方法的邏輯與父類方法中的邏輯不相同,則需要在子類中對這個方法進行重寫

關鍵字:override

如果父類中有乙個方法,則子類中預設是不允許出現同名方法,如果出現了則系統認為是子類中要隱藏父類中的這個同名方法,那麼在子類物件呼叫方法之後則呼叫到的是子類中的方法

放棄父類中的同名方法,在子類中宣告乙個新的方法邏輯,從而採用子類中的自己的方法

父類中的這個方法必須是虛擬或者抽象

虛擬(virtual):

可重寫也可不重寫;

抽象(abstract):

只有抽象方法簽名,沒有方法體;

抽象方法必須在抽象類中;

抽象類不能被例項化物件,只能被繼承;

抽象類必須被重寫;

虛擬方法和抽象方法的區別:

(1)虛擬方法可以宣告在抽象類中也可以宣告在普通類中,抽象方法只能宣告在抽象類中;

(2)抽象類在被繼承時抽象方法必須強制重寫,虛擬方法可被重寫也可不被重寫;

(3)抽象方法沒有方法體,虛擬方法有方法體也可沒有方法體;

虛擬小案例

以下為在虛擬的前提下重寫

eg:

基類

class

person

}

子類繼承父類的方法進行重寫

class

son:

person

}

例項化物件

抽象小案例

以下為在抽象類的前提下重寫

eg:

/// 

/// 此為抽象類

///

abstract

class

person1

}

子類繼承父類的方法進行重寫

class

son1

:person1

}

例項化物件

class

program

}

隱藏:繼承中子類和父類中有相同方法名時,通過new更改此方法中的引數

eg:

public

newvoid say()

C 方法重寫(override)

重寫 override 重寫 類的繼承時發生,在子類中重新定義父類中的方法,子類中的方法和父類的方法是一樣的,即方法名,引數,返回值型別都相同。例如 基類方法宣告為virtual 虛方法 派生類中使用override宣告此方法的重寫.重寫override一般用於介面實現和繼承類的方法改寫,要注意 1...

C 重寫基函式(override)

物件導向程式設計的三大特性是繼承,封裝和多型。當我們從父類中繼承了一種方法,但是我們事實上需要的是另外一種方法,這時候我們就可以通過重寫方法,實現乙個方法名對應多種方法。舉例來說,我們有乙個類名叫animal,其中有乙個方法名為move class animal class bird animal ...

C 重寫 override 和覆蓋 new

重寫 用關鍵字 virtual 修飾的方法,叫虛方法。可以在子類中用override 宣告同名的方法,這叫 重寫 相應的沒有用virtual修飾的方法,我們叫它實方法。重寫會改變父類方法的功能。覆蓋 在子類中用 new 關鍵字修飾 定義的與父類中同名的方法,叫覆蓋。覆蓋不會改變父類方法的功能。示例 ...