zoukankan      html  css  js  c++  java
  • C#面向对象基础(七) 多态

    先明确以下关系

    Animal   Wolf  Goat

    public class Animal
        {
            
    public string name;
            
    public int age;
            
            
    public Animal(string n, int a)
            {
                name 
    = n;
                age 
    = a;
                Console.WriteLine(
    "Animal构造方法");
            }

            
    public virtual void Eat()
            {
                Console.WriteLine(
    "动物吃东西...");
            }
               }
     public class Wolf : Animal
        {    
    public void Eat()
            {
                Console.WriteLine(
    "吃羊...");         
            }
        }
    public class Goat : Animal
        {
            
    public void Eat()
            {
                Console.WriteLine(
    "吃草...");
            }
        }

     在main方法里,如下代码:

      Animal a = new Wolf("huitai",2);
                a.Eat();

    代码的意思是,动物a,是一只叫灰太的,2岁的小狼. a.eat(),输出的结果是什么? 你想,肯定是吃羊了

    错!

    动物吃东西

    这是因为,a.eat(),a虽然是狼,但些时被当动物看街 eat方法是animal的eat方法.

    多态

    试一下,在Animal类的eat方法前加virtual,在wofl的eat方法前加上override关键字.

  • 相关阅读:
    spring容器启动
    springmvc流程
    bean作用域
    bean的生命周期
    web.xml详解
    设计模式 工厂和抽象工厂
    requests 模块
    爬虫基础
    提高级
    循环语句
  • 原文地址:https://www.cnblogs.com/imxh/p/2174480.html
Copyright © 2011-2022 走看看