假设class2扩展了另一个class1,并且class2需要实现一个特定的接口。class1必须实现与class2应该实现的接口吗?
示例:
public class Mosquito extends Insect implements FlyingThings {
}昆虫是否必须实现FlyingThings?
从逻辑上讲,我认为,在给定的例子中,答案是否定的,因为昆虫不一定会飞。当然,在这方面,这个例子可能只是误导。
不管怎么说,我要感谢你提前给出的答案。
发布于 2011-04-17 19:01:12
您的推理是正确的: Class1不需要为Class2实现接口。
Class2在继承Class1的功能和成员时,可以自由添加或可能通过重写更改任何适当的功能(通过接口或其他方式)。
发布于 2011-04-17 19:08:20
蚂蚁是昆虫,它们大多不会飞。所以蚂蚁飞起来是不合适的。
此外,考虑这个问题:
这是诱人的
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成为一个很好的接口选择。
https://stackoverflow.com/questions/5695695
复制相似问题