글
메소드 override 는 상속하는 부모 클래스의 메소드와 동일한 메소드명, 동일한 매개변수 타입과 갯수, 동일한 반환형을 가지고 자식 클래스에서 재정의하는 것입니다. 이 때, 부모의 접근 제어 지시자를 더 좁혀서는 안됩니다. 동일하거나, 더 넓히는 것은 허용됩니다.
메소드가 자식 클래스에서 오버라이딩되면, 외부에서 부모 클래스의 변수로, 자식 객체를 생성하여 이를 가리키게 한 다음, 부모 클래스 내의 오버라이딩된 메소드를 호출하더라도, 부모의 메소드가 아닌, 자식의 오버라이딩된 메소드가 호출됩니다.
반환형이 동일하지 않은 경우에, 부모 클래스의 메소드의 반환형이 더 상위 클래스이고, 자식 클래스의 메소드의 반환형이 그 상위 클래스를 상속하는 자식 클래스인 경우에는 메소드 override 가 가능합니다. 즉, 부모 클래스의 메소드의 반환형이 자식 클래스의 메소드의 반환형보다 더 상위 클래스이어야 한다는 것입니다. 이는, 자식 클래스의 인스턴스를 부모 클래스의 인스턴스에 대입할 수 있는 것과 같은 이치라고 볼 수 있습니다.
'4.1) OCJP > 관련 이론 및 문법' 카테고리의 다른 글
관련 이론 및 문법 - String 클래스 VS StringBuilder 클래스 (0) | 2015.06.19 |
---|---|
관련 이론 및 문법 - String 클래스 (0) | 2015.06.19 |
관련 이론 및 문법 - 접근 제어 지시자 (0) | 2015.06.17 |
관련 이론 및 문법 - this VS super (0) | 2015.06.17 |
관련 이론 및 문법 - 메소드 오버로딩 (method overloading) (0) | 2015.06.17 |
관련 이론 및 문법 - 변수의 영역 (scope) (0) | 2015.06.16 |
관련 이론 및 문법 - 기본 생성자, 상속시 부모 생성자 호출, super (0) | 2015.06.16 |
관련 이론 및 문법 - 가변 인자 (varargs = variable arguments) (0) | 2015.06.16 |
관련 이론 및 문법 - extends VS implements (0) | 2015.06.16 |
관련 이론 및 문법 - 추상 클래스 (abstract class) (0) | 2015.06.16 |
RECENT COMMENT