国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# 多態性的深入理解

2020-01-24 03:13:44
字體:
來源:轉載
供稿:網友
MSDN 上面的定義:通過繼承,一個類可以有多種類型:可以用作它自己的類型,任何基類型,或者在實現接口時用作任何接口的類型。
從兩個方面來說明多態
1.在運行時,方法參數和集合或者是數組等位置,派生類的對象都可以作為基類的對象處理,發生此情況時,該對象的聲明類型不再與運行時類型相同。
2.基類定義實現虛方法,派生類重寫這些方法,在運行時,CLR會查找運行時類型,并且調用派生類重寫的方法.
復制代碼 代碼如下:

    class Shape
    {
        public virtual void Draw()
        {
            Console.WriteLine("Draw a shape");
        }
    }
    class Circle : Shape
    {
        public override void Draw()
        {
            Console.WriteLine("Draw a circle");
        }
    }
    class Rectangle : Shape
    {
        public override void Draw()
        {
            Console.WriteLine("Draw a Rectangle");
        }
    }
    class Triangle : Shape
    {
        public override void Draw()
        {
            Console.WriteLine("Draw a Triangle");
        }
    }
    class Programm
    {
        static void Main()
        {
            //此次就說明了,派生類對象可以作為基類對象進行處理
            Shape[] shapes =
            {
             new Circle(),
             new Rectangle(),
             new Triangle()
            };

            foreach (Shape s in shapes)
            {
                //調用Draw()方法的時候,調用了派生重寫的方法,而不是基類
                s.Draw();
            }
        }
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大余县| 荃湾区| 额济纳旗| 田东县| 新兴县| 稷山县| 长武县| 襄樊市| 赣州市| 阜阳市| 东光县| 苍山县| 永春县| 平定县| 丹棱县| 虹口区| 阿瓦提县| 汤阴县| 岚皋县| 永清县| 格尔木市| 嘉黎县| 乐亭县| 黔东| 镇宁| 衡山县| 竹山县| 乐昌市| 明光市| 五原县| 普洱| 屏南县| 伊金霍洛旗| 昌宁县| 义乌市| 白山市| 仙居县| 德兴市| 庆城县| 精河县| 故城县|