星空网 > 软件开发 > ASP.net

C#基础知识之override和new的区别

override

  • override是派生类用来重写基类方法的。调用的派生类方法,如需调用基类方法用base关键字
  • override不能重写非虚方法或静态方法。
  • override重写必须用abstract、override、virtrual修饰的方法。

new

  • new 是派生类用来隐藏基类方法的,在派生类中看不到基类方法,但调用的还是基类的方法。
  • 如果在派生类中要隐藏基类方法而不用new关键字,而不用new关键字,编译时会出现一个警告,提示如果是要隐藏基类中的方法,请使用new关键字。
  • new可以隐藏基类中的普通方法也可以是虚方法。
  • 如果在派生类中用private来修饰new 方法,那么只在该派生类中隐藏了基类中的方法,在该派生类之外,相当于没有隐藏基类中的方法;
  • 如果在派生类中隐藏了基类中的方法,在该派生类的派生类中,将延续对该派生类对基类方法的隐藏。
 public class Program  {    static void Main(string[] args)    {      A a = new A();      a.Test();      B b = new B();      b.Test();      A c = new B();      c.Test();      A d = new C();      d.Test();      Console.ReadLine();    }  }  public class A  {    public virtual void Test()    {      Console.WriteLine("A Test()");    }  }  public class B : A  {    private new void Test()    {      Console.WriteLine("b Test()");    }  }  public class C : B  {    public override void Test()    {      Console.WriteLine("C Test()");    }  }




原标题:C#基础知识之override和new的区别

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

个人开立境外账户:https://www.goluckyvip.com/tag/72856.html
境外开户申请:https://www.goluckyvip.com/tag/72858.html
Amazon Posts:https://www.goluckyvip.com/tag/7286.html
海外fb广告开户:https://www.goluckyvip.com/tag/72860.html
境外在线开户:https://www.goluckyvip.com/tag/72861.html
海外期货开户:https://www.goluckyvip.com/tag/72864.html
秦皇岛到丹东旅游景点大全 秦皇岛到丹东开车多长时间:https://www.vstour.cn/a/408253.html
求推荐适合情侣玩的地方,三天时间,谢谢:https://www.vstour.cn/a/408254.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流