zoukankan      html  css  js  c++  java
  • new 和 override 的区别

    new是继承类对基类方法的重写而在继承类中产生新的方法,这时基类方法和继承方法之间没有任何的关系了,可是override就不同了,它也是对基类中方法的重写,但此时只是继承类重写了一次基类的方法。

    new 和 override 的区别

    [ 2005-06-25 19:27:41 | 作者: yuhen ]
    字号: | |
    帮某个兄弟修改一个错误时,再次发现这个错误,于是写了个小例子,让初学者注意。呵呵。
      class A
      {
        public virtual void Test()
        {
          Console.WriteLine("A");
        }
      }
     
      class A1 : A
      {
        public override void Test()
        {
          Console.WriteLine("A1");
        }
      }
     
      class A2 : A
      {
        public new void Test()
        {
          Console.WriteLine("A2");
        }
      }
     
      class Test
      {
        static void Main(string[] args)
        {
          A a1 = new A1();
          A a2 = new A2();
     
          a1.Test();
          a2.Test();
          (a2 as A2).Test();
     
          Console.Read();
        }
      }

    输出结果是:

    A1...
    A...
    A2...

    是不是和想的不一样,总之理解new和override对多态的影响很重要。
  • 相关阅读:
    Base64 编解码
    MFC:CTime类和CTimeSpan类
    VC对话框实现添加滚动条实现滚动效果
    组合框控件 -- CComboBox
    快速排序
    归并排序
    插入排序
    堆排序
    Mozilla新特性只支持https网站,再次推动SSL证书普及
    企业如何选择最佳的SSL
  • 原文地址:https://www.cnblogs.com/winner/p/640139.html
Copyright © 2011-2022 走看看