C#关于面对象多态例子

//主的喂狗 

class Program
    {
        static void Main(string[] args)
        {
            //我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗
            //买来条狗,主人一喂,狗会吃东西
            Person person = new Person();
            Dog dog = new Dog();
            person.feed(dog);//主人喂狗
          
        }
    }

//   主人类

 class Person { //主人喂狗
       public void feed(Dog dog) {
           dog.eat();
       } 
   }

//狗类

 class Dog {
        //狗吃东西动作
        public void eat(){
            Console.Write("狗吃东西"); }
         }

//过了几天张三这哥们在市场上看到一只猫,又想喂猫了

 class Cat     {       

  public void eat() {  

Console.Write("猫吃东西");

        }  

   }

  class Program
    {
        static void Main(string[] args)
        {
            //我们来模拟一个主人养狗动物的例子 首先创建一个主人对象,同时主人买了条狗
            //买来条狗,主人一喂,狗会吃东西
            Person person = new Person();
            Dog dog = new Dog();
            Cat cat = new Cat();
            person.feed(dog);//主人喂狗
            person.feed(cat);//主人喂猫
        }
    }

//又没过几天又看到一只兔子,又想养兔了

这时候我们是不是感觉程序有点不好扩展了

我们想既然是养动物,我们为何不创建个动物类了

class Anmail
    {
          //动物吃东西动作
        public void eat(){
         }
    }

//到时候什么狗 猫 兔都继承 Anmail类就好了

//那么主人里面的可以这么写就好了

class Person { //主人喂狗 
       //主人喂动物
       public void feed(Anmail anmial)
       {
           anmial.eat();
       }
   }

//主程序可以这么写了

 class Program
    {
        static void Main(string[] args)
        {
            Person person = new Person();
            Anmail an= new Dog();( 养狗 养猫) // Anmail an= new Cat()
            person.feed(an);//主人喂狗或主人喂猫 
        }
    }

//写到这里是不是稍微感觉到多态的好处了,当然这只是一个小例子

下面说下  Anmail an= new Dog()

这个就是父只向子

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值