new方法和虛方法

2021-09-30 15:23:36 字數 438 閱讀 1106

new方法:

在繼承父類時相同的方法可能有不同的表現形式,比如說talk(),父類中:class mammal}

子類中:class horse:mammal}//使用new關鍵字重寫父類中talk()方法,將父類中的talk()隱藏;

所以在例項化時:horse bighorse=new horse();bighorse.talk呼叫的是子類中重寫的talk()方法;

虛方法(virtual)與方法重寫(改變了引用的呼叫方式):override子類重寫父類方法,使父類引用子類物件時可以呼叫子類重寫父類的方法;(子類重寫父類方法pubic override void breath(){});

方法(定義override方法)的注意事項:

(1)必須是virtual(父類中)修飾的方法子類中才能加override;

(2)要重寫的是父類中子類能訪問的方法;

虛方法與new隱藏

虛方法 通過用virtual修飾的父類方法可以在子類中用override修飾子類中的同名方法,使包含子類的父類物件可以使用子類中重寫後的該方法。new 在子類中與在父類中有相同名稱,簽名的方法時,此時子類物件只能呼叫自身的該方法,不能呼叫父類中該同名方法,因為父類中該同名方法被隱藏了,為了直觀還表達...

C 虛方法 與 隱藏方法 new 區別

重寫和隱藏的定義 隱藏 基類方法不做申明 預設為非虛方法 在派生類中使用new宣告此方法的隱藏。重寫 virtaul 時,定義的變數為父類或子類,賦值為子類時.皆呼叫子類的重寫方法 會從子類中查詢有重寫則呼叫,沒則呼叫基類方法 隱藏 new 時,定義的變數為父類則呼叫父類的方法 不管賦值是子類還是父...

虛方法 重寫方法和抽象方法

若乙個例項方法的宣告中含有 virtual 修飾符,則稱該方法為虛方法 virtual method 若其中沒有 virtual 修飾符,則稱該方法為非虛方法 non virtual method 在呼叫乙個虛方法時,該呼叫所涉及的那個例項的執行時型別 runtime type 確定要呼叫該方法的哪...