zoukankan      html  css  js  c++  java
  • 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()

    这个就是父只向子

  • 相关阅读:
    Demo
    Demo
    Demo
    Demo
    Demo
    【csp模拟赛6】树上统计-启发式合并,线段树合并
    【csp模拟赛6】计数--单调栈
    【csp模拟赛6】相遇--LCA
    【poj1734】Sightseeing trip--无向图最小环
    【poj2709】Painter--贪心
  • 原文地址:https://www.cnblogs.com/yzenet/p/2865233.html
Copyright © 2011-2022 走看看