无法将“demo.Class1”类型的对象转换为“demo.Class2”类型

时间:2017-04-14 13:19:19

标签: c# inheritance polymorphism

我的对象无法转换为其他对象请帮助

显示错误:

  

无法将“demo.Class1”类型的对象强制转换为“demo.Class2”。

public class Class1
{
    public int a;
    public string b;

    public void Hello()
    {
        Console.WriteLine("ABC");
    }
}
public class Class2 : Class1
{
    public string d;
}


class Program
{
    static void Main(string[] args)
    {
        Class1 c = new Class1();
        c.a = 1;
        c.b = "A";

        Class2 c2 = (Class2)c;

    }
}

请帮忙

1 个答案:

答案 0 :(得分:3)

Class 2是Class 1的子类型。这意味着你可以将Class2对象转换为Class1类型,但不能反过来。

用较少抽象的名称来澄清:Class1是Animal,Class2是狗。你可以说狗是动物,但动物并不总是狗。