给定以下UML表示形式,如何获取仅公开getter方法的BullDog实例?

  • BullDog实例不应具有任何可用的setter方法。
  • BullDog实例应仅具有可用的getter方法(其中3种)

  • 基本上,问题是..我应该将new BullDog转换为什么?

    最佳答案

    由于HealthyPet和Pet是无关的,因此您无法强制转换为所有3种getter方法(getMetabolism(),getName()和getAge())。现在,如果HealthyPet扩展了Pet(而且我真的不确定为什么不这样做),那么您就可以开展业务。因为这样您就可以强制转换为HealthyPet,返回该接口(interface),并且调用方将仅看到3种getter方法(当然,我在讲话时没有花哨的自省(introspection),这应该使他们能够发现所有内容)。

    10-06 06:24