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

-------  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();
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值