ChildClass に継承される ParentClass に継承される GrandParentClass があるとします。
「チェーンのアップ」しかキャストできないのに、ダウンはキャストできないのはなぜですか?
ダイナミック バインドは「ダウン チェーン」のみで、アップはできないのはなぜですか?
パターンを暗記するだけでなく、これらの質問に適用できる理由を探しています。これが単なる「その通りだ」というような答えではないことを心から願っています。
鋳造の例:
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.