子类对象可以直接赋给父类变量,反之则不能直接赋值,会出现编译错误!要通过编译需强制转换,我刚写了个简单的小例子:
class Program
{
static void Main(string[] args)
{
Animal a;
dog d = new dog();
d.name = "拉布拉多犬";
d.wang();
a = d;//子类对象赋给父类变量
d =(dog) a;//反之需进行强制转换,在清楚b确实赋给a的前提下
}
class dog : Animal
{
public void wang() {
Console.WriteLine("汪汪!");
}
}
class Animal
{
public string name;
}
}
} |