首页 > 代码库 > C# 虚方法的重载 new 与 virtual
C# 虚方法的重载 new 与 virtual
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OverrideTest { class A { private String username; public void method1() { Console.WriteLine("A.method1"); } //虚函数能够被重载,能够多态 public virtual void method2() { Console.WriteLine("A.method2"); } } class B : A { //调用这个函数名的时候,查看当前的编译类型是什么,根据这个编译类型调用编译类型的方法。 public new void method1() { Console.WriteLine("B.method1"); } //调用这个函数名的时候,查看当前的运行时类型是什么,根据这个对象的实际类型调用它的方法。 public override void method2() { Console.WriteLine("B.method2"); } } class Test { public static void Main() { B b = new B(); A a = b; a.method1(); a.method2(); b.method1(); b.method2(); Console.Read(); } } }
输出结果:
A.method1
B.method2
B.method1
B.method2
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。