亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

C# 多態(tài)性的深入理解

 更新時(shí)間:2013年06月09日 08:56:06   作者:  
本篇文章是對(duì)C#中的多態(tài)性進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
MSDN 上面的定義:通過(guò)繼承,一個(gè)類(lèi)可以有多種類(lèi)型:可以用作它自己的類(lèi)型,任何基類(lèi)型,或者在實(shí)現(xiàn)接口時(shí)用作任何接口的類(lèi)型。
從兩個(gè)方面來(lái)說(shuō)明多態(tài)
1.在運(yùn)行時(shí),方法參數(shù)和集合或者是數(shù)組等位置,派生類(lèi)的對(duì)象都可以作為基類(lèi)的對(duì)象處理,發(fā)生此情況時(shí),該對(duì)象的聲明類(lèi)型不再與運(yùn)行時(shí)類(lèi)型相同。
2.基類(lèi)定義實(shí)現(xiàn)虛方法,派生類(lèi)重寫(xiě)這些方法,在運(yùn)行時(shí),CLR會(huì)查找運(yùn)行時(shí)類(lèi)型,并且調(diào)用派生類(lèi)重寫(xiě)的方法.
復(fù)制代碼 代碼如下:

    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()
        {
            //此次就說(shuō)明了,派生類(lèi)對(duì)象可以作為基類(lèi)對(duì)象進(jìn)行處理
            Shape[] shapes =
            {
             new Circle(),
             new Rectangle(),
             new Triangle()
            };

            foreach (Shape s in shapes)
            {
                //調(diào)用Draw()方法的時(shí)候,調(diào)用了派生重寫(xiě)的方法,而不是基類(lèi)
                s.Draw();
            }
        }
    }

相關(guān)文章

最新評(píng)論