给定以下UML表示形式,如何获取仅公开getter方法的BullDog
实例?
BullDog
实例不应具有任何可用的setter方法。 BullDog
实例应仅具有可用的getter方法(其中3种)基本上,问题是..我应该将
new BullDog
转换为什么? 最佳答案
由于HealthyPet和Pet是无关的,因此您无法强制转换为所有3种getter方法(getMetabolism(),getName()和getAge())。现在,如果HealthyPet扩展了Pet(而且我真的不确定为什么不这样做),那么您就可以开展业务。因为这样您就可以强制转换为HealthyPet,返回该接口(interface),并且调用方将仅看到3种getter方法(当然,我在讲话时没有花哨的自省(introspection),这应该使他们能够发现所有内容)。