虚类和非虚类继承
来源:网络 作者:佚名 点击:
次时间: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完成了对方法的实际调用.
|
------分隔线----------------------------