假设我有一个 GrandParentClass 被 ParentClass 继承,而 ParentClass 又被 ChildClass 继承。
为什么我只能“上链”而不能下链?
为什么我只能动态绑定“下链”而不是上链?
我正在寻找一些可以应用于这些问题的推理,而不仅仅是记住模式。我真的希望这不仅仅是一个“就是这样”的答案。
铸造示例:
ParentClass object = new ParentClass();
System.out.println((GrandParentClass)object); //casting ChildClass throws compiler error
动态绑定示例:
GrandParentClass = new ChildClass(); //Switching GrandParentClass with ChildClass throws run time error.