错误的写法:
class Program
{
static void Main(string[] args)
{
Employee e = new Employee();
Manager m = (Manager)e;
}
}
class Employee
{
}
class Manager : Employee
{
}
正确写法:
class Program
{
static void Main(string[] args)
{
Employee e = new Manager();
Manager m = (Manager)e;
}
}
class Employee
{
}
class Manager : Employee
{
}
曾经以为只要 Manger类继承自Employee类,子类就能强制转换成父类。现在明白了,只有当父类实例实现的是子类时,子类向父类转型才会正常,不会出现运行时错误。
不知道是不是这么表达,期望看到博客的同学们给专业的表达一下。谢谢。