• 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关键字.

  • 相关阅读:
    JAVA将list转化为xml文件
    Hibernate 配置文件属性之 级联操作cascade 性能优化inverse
    Hibernate 一对多关系操作
    Hibernate 原生SQL操作
    Hibernate 之 Criteria
    Hibernate HQL查询
    Hibernate使用getCurrentSession() 的配置
    Hibernate 主键生成策略
    hibernate(一)--简单示例
    适配器模式
  • 原文地址:https://www.cnblogs.com/imxh/p/2174480.html
Copyright © 2020-2023  润新知