Whiteship's Note

Overriding - covariant return type

Java : 2006.12.31 11:22


Java tutorial에 보시면 다음과 같이 나와있습니다.

An instance method in a subclass with the same signature (name, plus the number and the type of its parameters) and return type as an instance method in the superclass overrides the superclass's method.

메소드 서명 부분(메소드 이름, 매변수의 수, 매개변수의 타입) 과 리턴 타입이 부모 클래스의 것과 같을 때 자식 클래스에 있는 메소드가 오버라이딩을 한다.

하지만 이게 끝이 아닙니다. 다음 문단에 보시면
An overriding method can also return a subtype of the type returned by the overridden method. This is called a covariant return type.

오버라이딩 하는 메소드의 리턴 타입은 오버라이딩 당하는 메소드의 리턴타입의 하위 타입이 될 수 있습니다. 이것을 covariant return type이라고 한다는데 한글로는 뭐라고 해야하는지 모르겠네요.

팁으로 Overriding이 맞는지 확인하고 싶으면 Overriding하는 메소드 위에 @Override 라고 어노테이션을 붙여 주시면 됩니다. 적절한 오버라이딩이 아닐 때는 이 어노테이션을 근거로 컴파일 에러가 발생합니다. "오버라이딩이 아닌데 왜 오버라이딩이라고 써논거야?" 뭐 이런 에러가 발생합니다. 그래서 오버로딩과 오버라이딩이 명확하지 않을 땐 @Override를 붙여주는 것도 좋은 코딩 습관이 될 것 같습니다.

코드로 확인해 보겠습니다.

전 이 부분을 읽고나서 한 참 뒤 매개변수도 하위 타입으로 받아 들이게 되면 오버라이딩 아닌가~ 하는 생각으로 '외곡된 기억'을 가지게 되었고 다행히 열공하는 후배 덕분에 제가 '외곡된 기억'을 가지고 있었다는 사실을 알게 되었습니다.

머릿속으로 '맞다'라고 생각했던 것이 '외곡된 기억'일 수도 있다는 교훈을 얻게 됐네요.

'Java' 카테고리의 다른 글

Eclipse 단축키 모음  (6) 2007.01.11
Generic과 다형성 2탄  (4) 2007.01.05
Generic과 다형성  (0) 2007.01.05
자바 검은 띠에 도전해 보시길~  (2) 2006.12.31
Hiding Method  (0) 2006.12.31
Overriding - covariant return type  (6) 2006.12.31
LinkedList vs ArrayList  (6) 2006.12.22
Agile Java 소스코드(10장까지..)  (8) 2006.12.21
Reflection  (0) 2006.12.19
... 가변인수(varargs)  (2) 2006.12.11
for each 구문 사용법  (0) 2006.12.11
top

  1. 한산 2006.12.31 14:02 PERM. MOD/DEL REPLY

    아.. 이게 그 얘기였구만 -_-;;; 재밌네요..
    covariant를 제 나름대로 번역을 하자면 -_-;; 사전에는 '공변(共變)' 이라고 되어 있는데..
    (오버라이드 하는 메소드, 오버라이드 당하는 메소드가) 함께 변하는 리턴 타입 -_-;; 정도로? ㅋ
    좋은글 잘보고 갑니다. http://calamity84.oranc.co.kr/tt/trackback/41 열루 트랙백좀..

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2006.12.31 22:00 신고 PERM MOD/DEL

    ㅇㅇ트랙백 넘겻다.

  2. Favicon of https://zerry82.tistory.com BlogIcon 동자~ 2006.12.31 14:23 신고 PERM. MOD/DEL REPLY

    저도 그런 교훈을 얻고 이렇게 시도를 해본것입니다.

    감사합니다 ^^

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2006.12.31 21:59 신고 PERM MOD/DEL

    내가 고맙지. 덕분에 '외곡된 기억' 하나를 리뉴 햇으니간 ㅋㅋ

  3. Favicon of http://decoder.egloos.com BlogIcon decoder 2006.12.31 14:56 PERM. MOD/DEL REPLY

    Sun사의 한글 뉴스레터에도 공변 리턴 타입으로 번역해 놓았더군요~ :)
    덕분에 재밌는거 보고 갑니다.

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2006.12.31 21:59 신고 PERM MOD/DEL

    그렇군요. 공변이라는 말 저에겐 참 어렵네요. :)

Write a comment.




: 1 : ··· : 96 : 97 : 98 : 99 : 100 : 101 : 102 : 103 : 104 : ··· : 140 :