私の質問は、スーパークラスの動物の特別なケースについてです。
- 私の
Animal
缶moveForward()
とeat()
。 Seal
拡張しAnimal
ます。Dog
拡張しAnimal
ます。- そしてまた延びている特別な生き物があります
Animal
と呼ばれるがHuman
。 Human
メソッドもspeak()
実装しAnimal
ます(では実装されません)。
受け入れる抽象メソッドの実装では、メソッドAnimal
を使用したいと思いspeak()
ます。それはダウンキャストをしなければ不可能だと思われます。ジェレミー・ミラーは彼の記事で、ひどい臭いがすることを書いた。
この状況でダウンキャストを回避するための解決策は何ですか?