分享

V5.7类的多态

 时间剧毒 2019-04-29

using System;

using System.Collections.Generic;

using System.Text;

namespace V5._类的多态

{

    class Program

    {

        //A. 虚方法 将父类的方法标记为虚方法,使用关键字 virtual,此方法在子类可以重写,(使用关键字 override)

        //B. 抽象类与抽象方法 如果我们不需要使用父类创建对象,

        //   它的存在只是为供子类继承,可以将父类写成抽象(关键字 abstract ) 类,将父类方法写成抽象方法,

        //   子类中的方法扔用关键字override重写

        //C. 接口实现

        static void Main(string[] args)

        {

            //A虚方法

            //Clerk myClerk = new Clerk();

            //ProjectManager myPM = new ProjectManager();

            ////声明有关 Clerk 的数组

            //Clerk[] clerk ={ myClerk, myPM };

            //foreach (Clerk outclerk in clerk) {

            //    outclerk.WorkPlan();

            //}

            //B 抽象类与抽象方法

            //抽象类是不允许创建实例的 

            Drink  myMilk = new Milk ();

            Drink myTea = new Tea();

            Drink[] drink ={ myMilk, myTea };

            foreach (Drink outdrink in drink)

            {

                outdrink.drink();

            }

            Console.ReadKey();

        }

    }

}


using System;

using System.Collections.Generic;

using System.Text;

namespace V5._类的多态

{

    class Clerk

    {

        //基类

        //需方法

        public virtual void WorkPlan()

        {

            Console.WriteLine("我是职员,我需要工作计划");

        }

    }

}

using System;

using System.Collections.Generic;

using System.Text;

namespace V5._类的多态

{

    //abstract 抽象类

    abstract class Drink

    {

        public abstract void drink();

        //利用抽象来实现,类抽象化,方法抽象化,并且方法中不能有方法体{}

        //{

        //    Console.WriteLine("我是饮料我可以解渴!");

        //}

    }

}

using System;

using System.Collections.Generic;

using System.Text;

namespace V5._类的多态

{

    class Milk : Drink

    {

        //基类drink()抽象类   override 重写

        public  override  void drink()

        {

            Console.WriteLine("我是牛奶我可以解渴!");

        }

    }

}

using System;

using System.Collections.Generic;

using System.Text;

namespace V5._类的多态

{

    class Tea : Drink

    {

        //基类drink()抽象类   override 重写

        public override void drink()

        {

            Console.WriteLine("我是茶我可以解渴!");

        }

    }

}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多