假设class2扩展了另一个class1,而class2需要实现某个接口。 class1是否必须实现class2应该实现的相同接口?
示例:
public class Mosquito extends Insect implements FlyingThings {
}
逻辑上,我认为,在给定的例子中,答案是否定的,因为昆虫不一定会飞。但是,当然,这个例子在这方面可能会产生误导。
无论如何,我想提前感谢你的回答。
答案 0 :(得分:2)
你的理由是正确的:Class1不需要为了Class2而实现接口。
继承Class1的功能和成员时,Class2可以自由添加,或者可以通过覆盖进行更改,无论是哪种功能(通过接口或其他方式)都是合适的。
答案 1 :(得分:0)
此外,请考虑以下问题:
很有诱惑力
class FlyingInsect extends Insect
但是当你去做蚁后,你就有了这个:
class Ant extends Insect // ants don't fly
class QueenAnt extends Ant // wait she needs to fly though!
class QueenAnt extends FlyingInsect // oh drats, but now she isn't an ant!
这使FlyingThing
成为界面的最佳选择。