2011-09-21 5 views
5

다음 UML 표현을 사용하면 getter 메소드 만 노출 된 BullDog의 인스턴스를 어떻게 얻을 수 있습니까?클래스의 읽기 전용 복사본 생성 howto

  • BullDog의 인스턴스에는 사용할 수있는 설정 메서드가 없어야합니다. BullDog
  • 인스턴스는 난에 new BullDog 캐스트 않는 것을

기본적으로 문제는 사용할 수 getter 메소드 (중 3) ...해야합니까?

enter image description here

+0

btw ... myDog.getMetabolism()이 "건강에 좋지 않은"것으로 돌아 오면 어떻게 될까요? 귀하의 인터페이스 이름은 반 직관적 인 종류의 – Shawn

+0

일 것이며 왜 건강한 애완 동물 만 신진 대사를 할 수 있습니까? 분명히 모든 애완 동물은 신진 대사 속도를 반환 할 수 있으며 그때 만 건강을 결정할 수 있습니다. –

답변

4

HealthyPet 및 애완 동물 당신에게 3 개 getter 메소드를 (getMetabolism(), getName() 및 getAge()) 줄 것이다 당신이 캐스팅 할 수 아무것도 관련이 있기 때문에. HealthyPet이 Pet를 확장했다면 (그리고 왜 그렇게하지 않는지 잘 모르겠습니다) 사업에 뛰어 들게 될 것입니다. 왜냐하면 HealthyPet으로 캐스팅 할 수 있었기 때문에 해당 인터페이스를 반환하고 호출자는 3 가지 getter 메서드 만 볼 수 있었을 것입니다. 물론 모든 것을 발견 할 수 있도록해야만하는 환상적인 인트로 피스 없이는 이야기하고 있습니다.

+0

우수. 감사합니다! – JAM

1

애완 동물을 연장하려면 HealthyPet이 필요합니다. 그런 다음 BullDog 인스턴스를 HealthyPet으로 캐스팅합니다.