我试图了解Java为什么如此工作。
假设我有:
界面-IAnimal
抽象类-哺乳动物
具体课程-狗
Mammal
实现IAnimal
和Dog
扩展Mammal
。
Mammal
声明并实现该方法breastFeed()
(当然Animal
,没有此签名,因为并非每只动物都是哺乳动物)
现在,我想创建一个dog对象,该接口将以这种方式引用此dog:
IAnimal dog = new Dog();
在运行时的某个地方,我可能想使用该breastFeed
方法,但是dog对象无法识别该方法。
一种解决方案是在Dog
类中实现此方法。其他解决方案是Dog
从Abstract类进行引用,该类实现了接口,在这种情况下,我将所有内容都交给dog对象。
我发现这些解决方案是混乱而又怪异的。有什么想法吗?也许我错过了一些东西,并且有一些更好更清洁的解决方案?
慕哥9229398
天涯尽头无女友
回首忆惘然
相关分类