虛方法的作用主要是用於實現多型性,通過指向派生類的基類指標,訪問派生類中同名覆蓋成員函式
下面的例子:
這裡定義了3個類,分別是first,second,third
下面是呼叫方法:class first
}class second : first
}class third : first
private void button1_click(object sender, eventargs e)
first是宣告類,second是例項類
在這種情況下出現的結果是
說明執行的是second類裡的方法
private void button1_click(object sender, eventargs e)
執行到的是a裡的方法
若方法不宣告為虛方法,則會出現錯誤1「wintest.second.post()」: 繼承成員「wintest.first.post()」未標記為 virtual、abstract 或 override,無法進行重寫
關於C 中虛方法過載的說明
首先請大家看看下面的例子,using system abstract public class contact public class class1 contact 想要通過編譯,只需將prinf的宣告改為 public override string prinf 或 public new str...
C 關於虛函式
兩者區別在於,虛函式總能呼叫到正確的,即根據當前型別來呼叫 而new並不是這樣。1.採用了virtual宣告的函式 虛函式 子類重寫的時候會呼叫子類物件的方法 因此在通過基類進行轉化的時候,虛函式會根據物件真正型別,而呼叫相應的函式 例如 a obja new b obja.dosomething ...
C 中的虛方法
在c 中也可以實現父類物件指向子類實現,但是這個物件不能直接呼叫子類中的普通方法,必須在父類中先寫乙個虛方法,然後再子類中對虛方法進行重寫 using system using system.collections.generic using system.linq using system.tex...