-3
当我执行下面的代码时,为什么会出现ClassCastException?我得到一个ClassCastException,但我的源类型对象是超类型,并且演员操作符是子类型
class Test extends Test3 {
public static void main(String[] args) {
Test3 t3 = new Test3();
Test t = (Test) t3;
System.out.print("hello");
}
}
因为'Test3'不是'Test':'Test'是'Test3'。 “哺乳动物”不是“狗”,而是“狗”是“哺乳动物”。 –
这正是你无法做到的。你不能将对象投射到它不是的东西上。 – SLaks