黑马程序员_学习笔记11—多态

来源:互联网 发布:美国买mac口红多少钱 编辑:程序博客网 时间:2024/06/06 12:41
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------


多态:是一种抽象的概念,是一个对象可以有多种表现形式!
而对于多态怎么去实现:
1:重载与隐藏基类
2:抽象类与虚方法  俩者的区别是一个需要去实现,一个不需要自己去实现由子类去实例化
3:接口; 接口是一种约定,对象的特征或行为,对于一个集合体共同的属性或方法;它是用来被实现的,可以直接被当做父类调用,而抽象类只能当做基类,需要对象的实例化去重写才能使用!
抽象类:
namespace 抽象类 //定义一个抽象类
{
    abstract class 动物
    {
        public abstract void animal();
    }
}
namespace 抽象类
{
    class 马:动物
    {
        public override void animal()
        {
            Console.WriteLine("我是马,好多好多马!");
        }
    }
}
namespace 抽象类
{
    class 黑马:马
    {
       
        public override void animal()
        {
            Console.WriteLine("我是黑马重写了马"); ;
        }
    }
}
namespace 抽象类
{
    class 白马:马
    {
        
        public override void animal()
        {
            Console.WriteLine("我是白马重写了马"); ;
        }
    }
}
static void Main(string[] args)
        {
            动物 animals;
            animals = new 马();
            animals.animal();
            animals = new 白马();
            animals.animal();
            animals = new 黑马();
            animals.animal();
            Console.ReadKey();
        }
接口:
namespace 接口
{
    interface  Icall
    {
        void call();
    }
}


namespace 接口
{
    interface Irun
    {
        void run();
    }
}


abstract class car:Icall,Irun
    {
        public abstract void call();
        public abstract void run();
    }


 class maxCar:car
    {


        public override void call()
        {
            Console.WriteLine("我很大我会跑很霸气!");
        }


        public override void run()
        {
            Console.WriteLine("我很大我还可以放歌!");
        }
    }


namespace 接口
{
    class miniCar:Icall
    {
        public void call()
        {
            Console.WriteLine("我是一辆迷你小车");
        }
    }
}


namespace 接口
{
    class person:car
    {
        public override void call()
        {
            Console.WriteLine("我是一个人.....");
        }


        public sealed override void run()
        {
            Console.WriteLine("我是一个人可以唱歌 不能在重写了"); ;
        }
    }
}


namespace 接口
{
    class Program
    {
        static void Main(string[] args)
        {
            car[] s ={   new maxCar(),
                         new person(),
                                       };
            miniCar ss = new miniCar();
            s[0].call();
            s[0].run();
            s[1].call();
            s[1].run();
            ss.call();
            Console.ReadKey();
        }
    }
}

0 0
原创粉丝点击