2013-10-29 5 views
5

- 메서드 오버라이드를 다루는 섹션에서, 자바 SE7 프로그래머 시험, 나는 가로 질러 온 다음 :메서드 재정의 : 동일한 인수 목록 유형 (또는 호환 유형)? 나는 새로운 오라클 공인 전문가를 준비하기 위해 사용하는 책에서

최우선 방법은 이 있어야합니다 같은 인수 목록 유형 기본 버전으로 (또는 호환 유형).

그들은 "호환되는 유형"에 의해 무엇을 의미합니까? 즉, 인수 목록 유형이 다르면 오버라이드하지 않고 오버라이드합니다. 난 단지 소요 메서드를 재정 생각할 수

는 동일한 유형의 배열을 하나, 인수를 가변 인자. 컴파일러는 경고를 주지만 컴파일은 계속됩니다.

가 호환되는 유형으로 무엇을 의미합니까? 그 책에 오류가 있습니까?

+0

그들은 원래 유형에'sub' /'super' 클래스를 의미합니까? – nhgrif

+0

그들은'(int a, String b)'와'(String b, int a)'의 차이를 의미 할 수도 있습니다. –

답변

2

은 아마 형의 삭제와 함께 할 수있는 뭔가가.

abstract class Foo { 
    public abstract void method(List<String> xs); 
} 

class Bar extends Foo { 
    @Override 
    public void method(List xs) { 
    } 
} 

원시 형 ListList<String>와 호환 : 이것은 당신에게 경고를 제공, 유효 자바입니다.

+1

가장 합법적 인 대답입니다. http://docs.oracle.com/javase/tutorial/java/generics/rawTypes.html – Sambuca

+0

흥미로운 점! 이 하나의 생각하지 않았다 :-) –