方法Java重写和接口
我使用intellij IDEA 14
我有以下问题。让类ClassA
从接口A
实现,类ClassB
从接口B
实现,类ClassC
从接口C
实现
接口A
有方法Object method (B b, C c) {...}
,但我无法创建接口对象,因此我解决了在类ClassA
中重写此方法Object method(...) {...}
的问题,如下所示:
...
@Override
Object method (ClassB b, ClassC c) { // But here compiler writes an error "method does not override method from its superclass"
...
}
...
但是由于method does not override method from its superclass
的原因,无法编译它。但是为什么呢?例如,为什么我们可以使用从Map实现的HashMap
谢谢大家!
# 1 楼答案
你不能那样做
想象一下,例如,如果您还有两个类
ClassB2 implements B
和ClassC2 implements C
。您的方法将不适用于参数(ClassB2 b2, ClassC2 c2)
,而Object method (B b, C c)
可以使用它。在这里,接口和实现之间存在不一致性