Java覆盖和接口

时间:2014-11-17 16:24:48

标签: java methods intellij-idea override superclass

我使用intellij IDEA 14。

我遇到了以下问题。让类ClassA从接口A实现,类ClassB从接口B实现,类ClassC从接口C实现。

接口A有方法Object method (B b, C c) {...},但我无法创建接口对象,因此我解决了在类Object method(...) {...}中覆盖此方法ClassA的问题:

...
@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 个答案:

答案 0 :(得分:1)

你就是不这样做。

想象一下,例如,你是否还有两个班级。 ClassB2 implements BClassC2 implements C。您的方法不适用于参数(ClassB2 b2, ClassC2 c2),而Object method (B b, C c)可以使用它。在那里,您在接口和实现之间存在不一致。