(기초)그래서 뭘 배운거야?/Java

JV-42-Override : 오버라이드 (덮어씌우기)

Soheny.P 2021. 11. 5. 16:29
728x90

 

package kr.co.goodee39.date1105;

public class Ex09ParentClass1 {
	public void method1() {
		System.out.println("ParentClass에서 실행된 method1()");
	}
}
package kr.co.goodee39.date1105;

public class Ex09ChildClass extends Ex09ParentClass1 {
	//부모까지 갈 필요없이, 자식에서 찾아서 실행 가능
	@Override
	public void method1() {
		System.out.println("자식 클래스에서 실행한 method1()");
	}
}
package kr.co.goodee39.date1105;

public class Ex09Override {
	//Override
	/*
	 	- 자식클래스에서 부모 클래스에 정의된 기능을 같은 이름으로 선언해 덮어씌우는 것을 말함
	 	- 메모리에서 그 기능 검색시 자식 쪽에서 호출을 가로채, 부모 클래스 기능 검색 막는 매커니즘
	 	- 강제로 부모 클래스 기능 접근하고 싶다면, super.method명() 이용해 부모 객체에 접근 가능
	 */
	
	public static void main(String[] args) {
		Ex09ChildClass cc1 = new Ex09ChildClass();
		cc1.method1(); //ParentClass에서 실행된 method1() :  ChildClass는 상속 후 아무것도 안함
					   //자식 클래스에서 실행한 method1() : ChildClass에서 재정의 시 (부모 method1에 덮어씌워버림)
	}

}

OVERRIDE 수행 전

 

OVERRIDE 수행 후 

728x90