在父類中有乙個方法,但是子類中也需要這個方法的名稱,但是子類中的方法的邏輯與父類方法中的邏輯不相同,則需要在子類中對這個方法進行重寫
關鍵字:override
如果父類中有乙個方法,則子類中預設是不允許出現同名方法,如果出現了則系統認為是子類中要隱藏父類中的這個同名方法,那麼在子類物件呼叫方法之後則呼叫到的是子類中的方法
放棄父類中的同名方法,在子類中宣告乙個新的方法邏輯,從而採用子類中的自己的方法
父類中的這個方法必須是虛擬或者抽象
虛擬(virtual):
可重寫也可不重寫;
抽象(abstract):
只有抽象方法簽名,沒有方法體;
抽象方法必須在抽象類中;
抽象類不能被例項化物件,只能被繼承;
抽象類必須被重寫;
虛擬方法和抽象方法的區別:
(1)虛擬方法可以宣告在抽象類中也可以宣告在普通類中,抽象方法只能宣告在抽象類中;
(2)抽象類在被繼承時抽象方法必須強制重寫,虛擬方法可被重寫也可不被重寫;
(3)抽象方法沒有方法體,虛擬方法有方法體也可沒有方法體;
虛擬小案例
以下為在虛擬的前提下重寫
eg:
基類
子類繼承父類的方法進行重寫class
person
}
例項化物件class
son:
person
}
抽象小案例
以下為在抽象類的前提下重寫
eg:
子類繼承父類的方法進行重寫///
/// 此為抽象類
///
abstract
class
person1
}
例項化物件class
son1
:person1
}
隱藏:繼承中子類和父類中有相同方法名時,通過new更改此方法中的引數class
program
}
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 關鍵字修飾 定義的與父類中同名的方法,叫覆蓋。覆蓋不會改變父類方法的功能。示例 ...