본문 바로가기
Backend/JAVA

[JAVA] override

by howdyoon 2023. 3. 20.

조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것

상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스 자신에 맞게 변경해야 하는 경우가 많다.

이럴 때 조상의 메서드를 오버라이딩 한다.

 

조상 클래스의 메서드를 자손 클래스에서 오버라이딩 할 때

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