The Debugging Chronicles : "코드의 미학"
Mentor JAVA - section11. 다형성과 타입 변환 본문
01. 클래스의 타입 변환
타입 변화은 타입을 다른 타입으로 변환하는 것으로 자바에서는 다음과 같이 두가지 대표적인 타입 변환이 있다
- 자료형 (타입) 변환
- 클래스의 객체 타입 변환
클래스 타입 변환은 서로 상속 관계에 있는 클래스 사이에서만 변환할 수 있습니다.
1. 클래스의 자동 타입 변환
개발자가 직접 명시하지 않아도 자동으로 타입 변환이 일어나는 것 '클래스 자동 타입 변환'
자식 객체를 만들면서 바로 부모 타입으로 변환할 때는 다음 과 같이 구현
부모 클래스 (타입) 객체 변수 = new 자식 클래스();
만들어진 자식 객체를 부모 타입으로 변환할 때는
부모클래스(타입) 객체변수 = 자식 객체;
package section11;
class parent{}
class Child extends parent{}
public class EX11_01{
public static void main(String[] args){
Parent p1 = new parent(); // p1 객체 생성
Child c1 = new Child(); // c1 객체 생성
Parent p2 = new Child(); // 자동 타입 변환
Parent P3 = c1; // 자동 타입 변환
// Child c2 = p1; <= 자동 타입 변환 안됨
if(p3 == c1){
// p3와 c1 같은 객체를 참조하고 있습니다
}
}
}
즉, Child 타입의 Child 객체 c1의 타입을 Parent로 변환해 만든 p3는 여전히 c1 객체라는 것을 확인할 수 있습니다.
타입을 변환한다고 객체가 바뀌는 것이 아니라, 객체는 보존되고 사용만 부모 객체처럼 사용한다.
'JAVA > Mentor JAVA' 카테고리의 다른 글
Mentor JAVA - section13. 내부 클래스 (0) | 2024.07.24 |
---|---|
Mentor JAVA - section12. 추상 클래스와 인터페이스 (0) | 2024.07.24 |
Mentor JAVA - section10. 상속 (0) | 2024.07.21 |
Mentor JAVA - section09. 생성자 (0) | 2024.07.21 |
Mentor JAVA - section08. 메서드 (0) | 2024.07.19 |