網頁

C# 快速導覽 - virtual 成員

宣告為 virtual 的方法 (method) 可被子類別 (subclass) 改寫。



virtual 不能與 staticabstractprivateoverride 連用。


舉例如下
public class Demo {
    public virtual void DoSomething() {
        System.Console.WriteLine("There is no spoon.");
    }
}

class Demo2 : Demo {
    public override void DoSomething() {
        System.Console.WriteLine("Free your mind.");
    }
    
    static void Main() {
        Demo2 d = new Demo2();
        d.DoSomething();
    }
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:class20.cs
    功能:示範 C# 程式 
    作者:張凱慶
    時間:西元 2013 年 6 月 */


DoSomethingvirtual 方法
public virtual void DoSomething() {
    System.Console.WriteLine("There is no spoon.");
}


子類別改寫可用 overridenew 改寫
public override void DoSomething() {
    System.Console.WriteLine("Free your mind.");
}


overridenew 改寫的方法,執行結果在 foreach 迴圈兩者會有差異。


編譯執行,結果如下



中英文術語對照
方法method
子類別subclass


您可以繼續參考
類別


相關目錄
回 C# 快速導覽
回 C# 教材
回首頁


參考資料
Standard ECMA-334 C# Language Specification
msdn: virtual (C# 參考)

沒有留言:

張貼留言

0.留言請選擇註冊帳號, Google 或 OpenID 均可
1.歡迎留言交流,但不歡迎垃圾留言及廣告留言
2.文章相關問題歡迎提出,請減少情緒性留言
3.非文章相關內容,請到 G+ 社群 FB 社團提出
4.問作業之留言會被直接刪除
5.莫忘網路禮節
6.可使用部份HTML標記,如 <b> 、 <i> 、 <a>
7.站長保留刪除留言的權力