2011-09-21 11 views
5

次UML表現を考えると、どのように私は唯一のゲッターメソッドが露出していることを、BullDogのインスタンスを取得することができますか?、HOWTO

  • BullDogのインスタンスには、どのセッターメソッドも使用できません。
  • BullDogのインスタンスのみ

可能なgetterメソッド(それらの3)を持つべき基本的問題は、私はnew BullDogをキャスト何をすべきか...ですか?

enter image description here

+0

btw ... myDog.getMetabolism()が「不健全」なものに戻った場合はどうなりますか?あなたのインターフェース名は、直感的でわかりやすい – Shawn

+0

であり、健康なペットだけが代謝を得ることができるのはなぜですか?確かにすべてのペットは代謝率を返すことができ、それだけで健康を判断することができます。 –

答えて

4

HealthyPetとペットはあなたにすべての3つのgetterメソッドを(getMetabolism()、のgetName()とgetAge())与えるあなたはそれにキャストすることができます何もない無関係なので。今、HealthyPetがペットを拡張した場合(なぜそうでないのか分かりません)、あなたはビジネスに就きます。 HealthyPetにキャストしてそのインターフェイスを返すことができるので、呼び出し元は3つのゲッターメソッドしか表示しません(もちろん、私はすべてを発見できるはずの幻想的なイントロスペクションなしで話しています)。

+0

優れています。ありがとうございます! – JAM

1

ペットを拡張するにはHealthyPetが必要です。次に、BullDogインスタンスをHealthyPetにキャストします。