这个问题在这里已经有答案了:
classcastexception与“cannot cast”编译错误(6个答案)
上个月关门了。
public class TypeConversion {
Human human = new Human();
NonHuman nonHuman = new NonHuman();
public void test()
{
nonHuman = (NonHuman) human; //Cannot cast from Human to NonHuman
}
}
class Human { }
class NonHuman {}
我希望类型转换至少在编译时作为显式的。并在运行时导致classcastexception或类似的结果。
所以,我想知道编译时类型转换的限制是什么。
1条答案
按热度按时间30byixjq1#
随机类不能相互转换。
通常允许两种类型的转换将子类对象转换为超类变量(隐式)将超类对象转换为子类变量(显式)
因此,只有当这两个类具有父子关系或子-父关系时,您的案例才会起作用。