basic knowledge

 例子是轉自別人.   
class one
    {
        public void F() { Console.WriteLine("one.F"); }//非虛方法
        public virtual void G() { Console.WriteLine("one.G"); }//虛方法
    }
    class two : one
    {
        public new void F() { Console.WriteLine("two.F"); }//方法隱藏
        public override void G() { Console.WriteLine("two.G"); }//方法覆蓋
    }
    class Test
    {
        static void Main()
        {
            two b = new two();
            one a = b;
            a.F();
            b.F();
            a.G();
            b.G();
            Console.ReadLine();
        }
    }
  輸出如圖:
 
 
多態性:包括編譯時多態性和運行時多態性.
編譯時多態性體現在重載上,包括方法重載和操作符重載。
運行時多態表現爲虛成員virtual與接口interface 。
 
函數多態的體現:重載(overload)、覆蓋(override)、隱藏(hide):
隱藏:通過基類的引用訪問該方法時,訪問的仍是基類的函數,子類對象訪問的是子類的函數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章