我有一个基类和一个派生类,如下所示
public class animal
{
public string name { get; set; }
}
public class dog : animal
{
public int age { get; set; }
public string type { get; set; }
}
用途:
animal a = new animal();
dog d = new dog();
a = d; //compiled
d = a; //Error:Cannot implicitly convert type 'animal' to 'dog'.
d = (dog)a; // compiled
派生类可以分配给基类但需要进行反向显式转换的内部发生了什么?即使基类和派生类都包含相同的成员,也发现相同的结果。