다형성과 타입 변환

✒️ 2025-05-15 13:04 내용 수정


하나의 객체가 여러 가지 타입을 가질 수 있는 것


타입 변환

1. 자료형의 타입 변환

2. 클래스의 객체 타입 변환

1) 자동 형변환

ParentClassName a = new ParentClassName();
ChildClassName a = new ChildClassName();
ParentClassName a = new ChildClassName();
ChildClassName a = new ParentClassName(); // 오류!

2) 클래스의 강제형변환

// 부모와 자식 클래스 지정
class ParentClassName {}
class ChildClassName extends ParentClassName {}

// 인스턴스 생성
ParentClassName a = new ParentClassName();
ChildClassName b = new ChildClassName(); // child class는 부모의 타입도 가지고 있다

// 부모 클래스 변수에 자식 클래스를 배정
a = b; // 자동형변환 (자식클래스 -> 부모클래스)
		// a는 b의 기능이나 속성을 사용할 수 없다

// 자식 클래스 변수에 부모 클래스를 강제형변환 후 배정
b = (ChildClassName)a; // 강제형변환 (부모클래스 -> 자식클래스)