指引网

当前位置: 主页 > 编程开发 > .NET >

虚类和非虚类继承

来源:网络 作者:佚名 点击: 时间:2017-11-17 03:52
[摘要] 一起来看代码: using System; class A { public void F(){Console.WriteLine("A.F");} public virtual void G(){Console.WriteLine("A.G");} }; class B:A { public void F(){Console.WriteLine("B.F");} public override void G(){Console.WriteLine("B.G");} };
一起来看代码: using System; class A { public void F(){Console.WriteLine("A.F");} public virtual void G(){Console.WriteLine("A.G");} }; class B:A { public void F(){Console.WriteLine("B.F");} public override void G(){Console.WriteLine("B.G");} }; class Test { static void main() { B b = new B(); A a = b; a.F(); b.F(); a.G(); b.G(); } }; 输出结果: A.F B.F B.G B.G 注意:a.G()实际调用了B.G()而不是A.G().这是因为编译时值为A,但是运行时值为B,所以B完成了对方法的实际调用.
------分隔线----------------------------