[ 메소드 오버라이드(Method Override) ]
- 슈퍼 클래스의 메소드를 서브 클래스가 다시 만드는 것을 말한다. (메소드 덮어쓰기)
- 오버라이드 하는 메소드는 @Override Annotation을 추가하는 것이 좋다. (권장이지만 필수로 하자.)
- 반드시 동일한 모습으로 오버라이드 해야 한다.
ㄴ(반환타입, 이름 하나라도 다르게 만들면 Err.)
[ 카페라떼 ]
public class CafeLatte extends Espresso {
@Override
public void taste() {
System.out.println("고소한 맛");
}
}
- @Override 오버라이드 한 메소드 (슈퍼클래스에도 있는데 내가 또 만든 거다. 라는 명시임.)
- @Override를 적으면 똑같이 만들었는지 문법 체크를 해 준다.(똑같지 않으면 에러표시해줌)
[ 에스프레소 ]
public class Espresso {
public void taste() {
System.out.println("쓴 맛");
}
}
[ 메인 메소드 ]
public class MainWrapper {
public static void main(String[] args) {
// CafeLatte 객체 선언 & 생성
CafeLatte latte = new CafeLatte();
// CafeLatte 객체 메소드
latte.taste();
}
}
- 원래는 부모 클래스의 메소드인 taste로 "쓴 맛"이 출력되어야 하지만,
- 메소드 오버라이드로 자식 클래스에서 새롭게 정의되어 "고소한 맛"으로 출력.