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

  • 相关阅读:
    介绍Asta4D
    Mac下terminal的常用命令
    Mac下的终端(Terminal)简介
    SCA简介及配置示例
    抽象
    自助式微软BI工具PowerPivot简介!
    C编译: 使用gdb调试
    operamasksui2.0 +MVC4.0+EF5.0实战 当EntityFramework遇上Json,引爆 循环引用 这颗雷
    ASP.NET MVC分部类的使用
    GWT入门教程
  • 原文地址:https://www.cnblogs.com/imxh/p/2174480.html
Copyright © 2011-2022 走看看