程序代码-2个类,B从A继承,TypeH()发布类字母:
class Program
{
static void Main(string[] args)
{
A z = new A();
A x = new B();
B y = (B)x;
z.TypeH();
x.TypeH();
y.TypeH();
x = (A)y;
x.TypeH();
}
}
class A
{
public virtual void TypeH()
{
Console.WriteLine("A");
}
}
class B : A
{
public override void TypeH()
{
Console.WriteLine("B");
}
}
输出:A B B B
为什么最后一个输出是B而不是A?
最佳答案
这称为多态。实例很重要(B
)而不是类型引用(A
)。
关于c# - 为什么我的转换/广播失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10411695/