假设有2个班级。并Child
延伸Parent
.
public class Parent {}
和
public class Child extends Parent {}
我知道以下代码不正确:
Child obj = new Parent(); // causes java.lang.Error
或者
Child obj = (Child) new Parent(); // causes java.lang.ClassCastException
但是我不明白为什么在第一种情况下会出现编译错误,而在第二种情况下会出现运行时异常。毕竟,父母永远不能转换或转换为孩子。为什么在编译时不检查其中的第二种情况?
我将非常感谢一个清晰合理的想法!