2014-11-17 2 views
0

인텔리전트 IDEA를 사용합니다. 14Java 재정의 및 인터페이스

다음과 같은 문제가 있습니다. 클래스 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

그냥 그렇게하지 마십시오.

예를 들어 클래스가 2 개 더있는 경우를 상상해보십시오. ClassB2 implements BClassC2 implements C. 귀하의 방법은 (ClassB2 b2, ClassC2 c2) 매개 변수에는 적용되지 않지만 Object method (B b, C c)은 정상적으로 적용됩니다. 그리고 거기에는 인터페이스와 구현간에 불일치가 있습니다.