조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것
상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야 하는 경우가 많다.
이럴 때 조상의 메서드를 오버라이딩 한다.
조상 클래스의 메서드를 자손 클래스에서 오버라이딩 할 때
1) 선언부가 조상 클래스의 메서드와 일치해야한다.
2) 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
3) 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
package oop0317;
public class Test06_override {
public static void main(String[] args) {
//Method Override 함수 재정의
//->상속관계에서 물려받은 메소드를 다시 수정(리폼)
//Korea클래스 생성 후 실습
//1)오버라이드 하기 전
Seoul se=new Seoul();
se.view();
se.disp();
//2)오버라이드 한 후
Busan bu=new Busan();
bu.view();//final메소드는 상속은 가능하지만 오버라이드는 할 수 없다
bu.disp();
}//main() end
}//class end
[ Korea 클래스]
package oop0317;
class Korea {
String name="대한민국";
final void view() {
System.out.println("Korea.view()...");
}//view() end
void disp() {
System.out.println("Korea.disp()..." + name);
}//disp() end
}//class end
class Seoul extends Korea {}//class end
class Busan extends Korea {
String name="부산광역시";
@Override //<-annotation
void disp() {
System.out.println("Busan.disp()..." + name);
}//disp() end
/*
@Override
void view() {} 에러. final메소드는 더이상 오버라이드 할 수 없다
*/
}//class end
'Backend > JAVA' 카테고리의 다른 글
[JAVA] get & set (0) | 2023.03.21 |
---|---|
[JAVA] Calendar (0) | 2023.03.21 |
[JAVA] 상속 (Inheritance) (0) | 2023.03.20 |
[JAVA] quiz : 성적프로그램 OX 표시하기 (0) | 2023.03.20 |
[JAVA] wrapper (0) | 2023.03.20 |