zoukankan      html  css  js  c++  java
  • override和new关键字 隐藏父类的方法

    正常情况下,父类virtual的方法,子类override

     class Animal
        {
            public virtual void EatFood()
            {
                Console.WriteLine("动物在吃东西");
            }
        }
        class Cat : Animal
        {
            public  override void EatFood()
            {
                Console.WriteLine("猫在吃鱼");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                Animal animal = new Cat();
                animal.EatFood();//输出的是子类的方法
                Console.Read();
            }
        }

    另外一种情况,父类的方法不是virtual的,但是子类中有同名的方法

    但是子类需要隐藏掉父类的方法

    class Animal
        {
            public void EatFood()
            {
                Console.WriteLine("动物在吃东西");
            }
        }
        class Cat : Animal
        {
            new public void EatFood()//通道new关键字,隐藏掉父类的方法
            {
                Console.WriteLine("猫在吃鱼");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                Animal animal = new Cat();
                animal.EatFood();//输出的是父类的方法
                Console.Read();
            }
        }
  • 相关阅读:
    正则表达式
    HDU 2066 多源最短路
    UVA 11039 模拟
    Concrete Mathematics Chapter 1 Warmups
    List differences between JAVA and C++
    uva 11107Life Forms
    poj 1509 Glass Beads
    poj 3581
    网络流建图
    图论算法----网络流
  • 原文地址:https://www.cnblogs.com/chucklu/p/4094866.html
Copyright © 2011-2022 走看看