面向對象的程序設計有三大要素
首先
class CA {
public virtual void Foo() {
Console
}
}
class CB : CA {
public override void Foo() {
Console
}
}
class Test {
public static void InvokeFoo(CA ca) {
ca
}
public static void Main() {
InvokeFoo(new CB());
}
}
輸出結果
CB
在這個例子中
在這個例子中
看到這裡
[問題]: 不用virtual結果如何?
[問題]: 不用override結果如何?
讀者不妨自己動手修改上例
序號 基類(CA)中是否有virtual 子類(CB)中是否有override 輸出
我希望通過對這組實驗結果的解釋
運行時綁定僅體現在虛函數中
Override只能用於虛函數中
class CA {
public virtual void Foo() {
Console
}
}
class CB : CA {
public override void Foo() {
Console
}
}
class CC : CA {
public new void Foo() {
Console
}
}
class Test {
public static void Main() {
Console
Console
}
}
這段程序輸出CB和CC的函數個數
From:http://tw.wingwit.com/Article/program/net/201311/11712.html