>>117
ダウンキャストがいくらでも出来ることに問題はない。
ダウンキャストしても安全に動くならば問題ない。

所で動的型付け言語、あれダウンキャストの嵐だよね。
変数はすべて基底のObject型。だからどんな型でも入れられる。
そしてメソッド呼び出しの時はObject型から具体的な型にキャストして呼び出す。
やっていることはコレと同じ。