質問: new Circle(); ``` ここでShapeでは記述されていないメソッドdisplay()をcirで実行したい場合Circleにダウンキャストすれば実行できると思ったのですが、以下でシンボルが見つけられませんという様なエラーが出ます。 ``` System.out.println((Circle)cir.display()); ``` 因みにインスタンスcirをShapeでは無くCircleで宣言して普通にcir.display()すると実行できます。又、Circleでは無くPointでキャストした場合も実行できませんでした。因みにdisplayはPointのメソッドでCircleでオーバーライドされています。これは何故できないのでしょうか?
回答: メソッド解決(.)よりキャストの方が優先度が低いからです。 `(Circle)cir.display()` ⇒ `((Circle)cir).display()`