我无法理解以下设计。让我们假设以下类和接口
interface A
{
....
}
class B implements A
{
....
}
class C extends B implements A
{
...
}
我在其中一个IBM框架(wcs订单框架)中找到了这个设计。那么为什么C类需要实现A?
您可以使用此设计的不同场景是什么?
这是什么类型的设计模式?
答案 0 :(得分:0)
在Java中,您不能从多个父级继承,但可以实现更多接口。
C不必实现接口A,因为B已经这样做了,但你可以覆盖已实现的方法。
答案 1 :(得分:0)
这里,C类不需要实现接口A.(如isnot2bad的评论所述) 唯一的原因是使事实显式化,而不必查找父类声明。它可能是一个历史性的IBM-WCS团队会议。
这种做法违反DRY原则,现代IDE已经可以提供帮助。 例如,RAD / Eclipse可以使用Ctrl + T x2(超类型层次结构)显示所有实现的接口。