次UML表現を考えると、どのように私は唯一のゲッターメソッドが露出していることを、BullDog
のインスタンスを取得することができますか?、HOWTO
BullDog
のインスタンスには、どのセッターメソッドも使用できません。BullDog
のインスタンスのみ
可能なgetterメソッド(それらの3)を持つべき基本的問題は、私はnew BullDog
をキャスト何をすべきか...ですか?
次UML表現を考えると、どのように私は唯一のゲッターメソッドが露出していることを、BullDog
のインスタンスを取得することができますか?、HOWTO
BullDog
のインスタンスには、どのセッターメソッドも使用できません。BullDog
のインスタンスのみ可能なgetterメソッド(それらの3)を持つべき基本的問題は、私はnew BullDog
をキャスト何をすべきか...ですか?
HealthyPetとペットはあなたにすべての3つのgetterメソッドを(getMetabolism()、のgetName()とgetAge())与えるあなたはそれにキャストすることができます何もない無関係なので。今、HealthyPetがペットを拡張した場合(なぜそうでないのか分かりません)、あなたはビジネスに就きます。 HealthyPetにキャストしてそのインターフェイスを返すことができるので、呼び出し元は3つのゲッターメソッドしか表示しません(もちろん、私はすべてを発見できるはずの幻想的なイントロスペクションなしで話しています)。
優れています。ありがとうございます! – JAM
ペットを拡張するにはHealthyPetが必要です。次に、BullDogインスタンスをHealthyPetにキャストします。
btw ... myDog.getMetabolism()が「不健全」なものに戻った場合はどうなりますか?あなたのインターフェース名は、直感的でわかりやすい – Shawn
であり、健康なペットだけが代謝を得ることができるのはなぜですか?確かにすべてのペットは代謝率を返すことができ、それだけで健康を判断することができます。 –