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

  • 相关阅读:
    JavaScript自定义事件
    用Java构建一个简单的WebSocket聊天室
    PHP实现支付宝小程序用户授权的工具类
    jq ajax超时设置
    gulp使用笔记
    vue学习—组件的定义注册
    echarts设置线条粗细
    求js数组的最大值和最小值
    js删除数组中的 "NaN"
    jq方法(end)
  • 原文地址:https://www.cnblogs.com/imxh/p/2174480.html
Copyright © 2011-2022 走看看