1.오버라이드, Override


흔히들 비교를 많이하는 오버로딩의 친구 오버라이드는


오버로딩이 클래스 내부에서 같은 이름의 메소드를 여러개 선언한다면


오버라이드는 상속받은 메소드의 이름을 같게 하여 새로 튜닝한다고 이해하면 된다.


그리고 final로 선언된 메소드는 전에 설명한것과 같이 상속 받을 수 없고 오버라이드 또한 불가능하다.


다음 예제를 확인해보자



package Chap05.exam04.tune;

public class ParentCar {
	public void Start() {
		System.out.println("시동");
	}
	public void run() {
		System.out.println("시속 50km/h으로 달립니다.");
	}
	public void Stop() {
		System.out.println("정지");
	}
	public final void test() {
		System.out.println("자체 점검");
	}
}
package Chap05.exam04.tune;

public class MyCar extends ParentCar {
	
	boolean sw = false;
	
	// 오버라이드 (ctrl + shift + s의 Override로 내용을 완전히 바꿈)
	@Override
	public void run() {
		// super.run();
		System.out.println("시속 30km/h으로 달립니다.");
	}

	
	// 오버라이드 (상황에 따라)
	@Override
	public void Stop() {
		// super.Stop();
		if(sw) {
			System.out.println("정지 후 자동 주차");
		}else{
			super.Stop();
		}
		
	}

}
package Chap05.exam04.tune;

public class Main {

	public static void main(String[] args) {
		MyCar k3 = new MyCar();
		k3.Start(); // 부모 클래스 
		k3.run(); // 자식 클래스에서 오버라이드 한 내용
		k3.Stop(); // 부모 클래스
		k3.sw = true;
		k3.Stop(); // 자식이 바꾼 내용
	}

}


'개념 및 코딩 > 05.상속' 카테고리의 다른 글

[JAVA]05-06.익명객체, 결합도  (0) 2018.08.30
[JAVA]05-05.추상클래스, 인터페이스  (0) 2018.08.30
[JAVA]05-04.다형성 배열, 활용  (0) 2018.08.29
[JAVA]05-03.다형성  (0) 2018.08.29
[JAVA]05-01.상속  (0) 2018.08.24

+ Recent posts