java - 업캐스팅, 다운캐스팅

imjingu·2023년 8월 22일
0

개발공부

목록 보기
407/481
package chapter20230822;
class Parent {
	void print() {
		System.out.println("Parent 메소드 호출");
	}
}

class Child extends Parent {
	@Override
	void print() {
		System.out.println("Child 메소드 호출");
	}
}
public class test11 {

	public static void main(String[] args) {
		Parent p = new Child(); // 업캐스팅 : 자식 객체를 부모 객체로 형변환
		p.print(); 				// 동적 메소드 호출, 자식의 print() 호출
		
		// child c = new Parent(); // 이것은 컴파일 오류, 부모 클래스를 자식 클래스 타입으로 참조 안됨
		
		Child c = (Child)p; 	// 다운캐스팅 : 부모 객체를 자식 객체로 형변환
		c.print(); 				// 메소드 오버라이딩, 자식 객체의 print() 호출된다
		
		Parent p2 = new Parent();
		// Child c2 = (Child)p2; // 예외 발생, Parent입장에서는 Child는 아무 관계가 없음

	}

}

0개의 댓글