程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#多態性基礎實現

C#多態性基礎實現

編輯:C#入門知識

多態分為兩種情況,一種是編譯的時候的多態性,一種是運行時的多態性。

編譯時的多態性:編譯時的多態性是通過重載來實現的。對於非虛的成員來說,系統在編譯時,根據傳遞的參數、返回的類型等信息決定實現何種操作。

運行時的多態性:運行時的多態性就直到運行時,才根據實際情況實現何種操作。C#中運行時的多態性是通過復寫虛函數實現的。


C#中的,多態人們很不容易分清楚。明明是一個相同的名稱,而調用起來,卻出現了不同的結果。現在來通過一個例子來體會一下多態是如何實現的。

\

子類繼承父類得到的方法,可以通過重寫來覆蓋。這樣父類的實例就可以使用子類的方法。

 class Program
    {
        static void Main(string[] args)
        {
            fruit ep;                      //定義一個水果的實例
            ep= new Apple();
            ep.AddFruit(5);
            ep = new Orange();
            ep.AddFruit(4);
        }
    }

    public abstract class fruit     //創建一個抽象類-水果
    {
        private uint nint_Weight;
        public abstract void AddFruit(uint nWeight);
    }
    public class Apple : fruit         //創建水果的子類-蘋果
    {
        public override void AddFruit(uint nWeight)
        {
            Console.WriteLine("你添加了一個蘋果,質量為{0}",nWeight);
        }
    }
    public class Orange : fruit       //創建水果的子類-橘子
    {
        public override void AddFruit(uint nWeight)
        {
            Console.WriteLine("你添加了一個橘子,質量為{0}", nWeight);
        }
    }



繼承:當子類繼承父類的時候,子類可以不用重新定義父類中的方法,可以直接使用。

多態:當子類重寫父類的方法時。父類的對象,調用子類的方法時候,會根據情況來選擇基類的方法。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved