程序代码-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/

10-09 01:17