zoukankan      html  css  js  c++  java
  • [转] C# 隐藏方法和重写方法

    1:方法重写:就是在基类中的方法用virtual关键字来标识,然后在继承类中对该类进行重写

      

     (override),这样基类中的方法在子类中已经被重写了,基类中的方法在子类中已经失去了功能

      了。当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用的继承类中重

      写的方法。

    2:方法隐藏:无论基类中的方法是否用了virtual关键字,继承类中都可以用new关键字(如果不用new

      的话,不会产生错误,但会生成一个编译警告)将基类中的方法隐藏,所谓隐藏就是隐藏,不像重

      写,重写就是基类中的旧方法在子类中已经不存在了,而隐藏是基类中的方法和子类中重写得到的新

      方法都存在。所以当让基类的对象的引用直接指向继承类的对象时(多态性),调用该方法则是调用

      的基类的方法。

    class BaseClass
          {
             public void functionA()
              {
                  Console.WriteLine("BaseFunctionA ===");
              }
              public virtual void functionB()
              {
                  Console.WriteLine("BaseFunctionB ===");
             }
         }
         class DerivedClass : BaseClass
         {
             new public void functionA()
             {
                 Console.WriteLine("DerivedFunctionA ===");
             }
             public override void functionB()
             {
                 Console.WriteLine("DerivedFunctionB ===");
             }
         }
        class Program
        {
            static void Main(string[] args)
            {
                BaseClass b2 = new DerivedClass();
                b2.functionA();//BaseFunctionA ===
                b2.functionB();//DerivedFunctionB ===
                Console.WriteLine("-----");
                BaseClass b = new BaseClass();
                b.functionA();//BaseFunctionA ===
                b.functionB();//BaseFunctionB ===
                Console.WriteLine("-----");
                DerivedClass d = new DerivedClass();
                d.functionA();//DerivedFunctionA ===
                d.functionB();//DerivedFunctionB ===
                Console.WriteLine("-----");
            }      
        }

    来源:http://blog.51cto.com/745559847/1857264

  • 相关阅读:
    HDU 1114 Piggy-Bank
    HDU 2955 Robberies
    NTOJ 290 动物统计(加强版)
    POJ 3624 Charm Bracelet
    HDU 2602 Bone Collector
    POJ 1523 SPF(无向图割顶)
    HDU 5311 Hidden String
    HDU 1421 搬寝室
    HDU 1058 Humble Numbers
    POJ 3259 Wormholes(spfa判负环)
  • 原文地址:https://www.cnblogs.com/AlvinLiang/p/8229024.html
Copyright © 2011-2022 走看看