小编Aut*_*erd的帖子

无法将基类转换为派生类

我有基类作为动物和儿童类作为狗

这是代码:

class Animal
{
    public int Legs { get; set; }

    public string Name  { get; set; }
}

class Dog : Animal
{
    public int noOfTail { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在我的主要方法中,当我在下面执行时,我得到异常:

   static void Main(string[] args)
    {
        Animal a = new Animal();
        Dog d = new Dog();
        d = (Dog)a;
    }
Run Code Online (Sandbox Code Playgroud)

但是当我第一次将我的派生类转换为父类时,我没有任何异常,这就是为什么我感到困惑,有人可以解释其背后的原因.

   static void Main(string[] args)
    {
        Animal a = new Animal();
        Dog d = new Dog();
        a = d;
        d = (Dog)a;
    }
Run Code Online (Sandbox Code Playgroud)

c# polymorphism casting

2
推荐指数
2
解决办法
1649
查看次数

标签 统计

c# ×1

casting ×1

polymorphism ×1