-
[JAVA] 강제 타입 변환개발 강의 정리/JAVA 2021. 5. 10. 19:28
1. 강제 타입변환 (다운캐스팅)
: 부모 타입을 자식 타입으로 변환하는 것
<문법>
자식 클래스 변수 = (자식클래스) 부모클래스타입;*조건
자식타입이 부모타입으로 자동 변환 한 후
다시 자식 타입으로 변환할 때 강제 타입 변환 가능.
다운캐스팅 하는 이유?
>자식 타입이 부모타입으로 업캐스팅 하면 부모클래스의 메서드와 필드만 사용 가능한데,
자식 클래스의 메서드를 이용하고 싶다면? 다운 캐스팅을 해야한다.
1.1 객체 타입 확인(instanceof)
모든 부모 객체를 자식 타입으로 강제 타입 변환을 할 수 있는게 아니다.
부모타입의 변수가 부모 객체를 참조 할 경우 자식 타입으로 변환할 수 없다.
Parent parent = new Parent();
Child child = (Child) parent //강제 타입 변환 불가. 애초에 부모 타입 객체이기 때문에.따라서, 다운캐스팅을 하기 위해서는 부모 변수가 참조하는 객체가
자식 객체인지 부모 객체인지 확인을 해야한다.
instanceof
:매개값의 타입을 조사할때 주로 사용.
boolean result = 좌항(객체) instanceof 우항(타입) 우항의 타입으로 객체 생성 > true 반환
우항의 타입으로 객체 생성 하지 않음 > false 반환
타입 확인 하지 않고 강제 타입 변환 시도하면 ClassCastException 발생할 수 있음.
'개발 강의 정리 > JAVA' 카테고리의 다른 글
[JAVA 백준 알고리즘] 4673번 셀프 넘버(Self Number) (0) 2021.05.27 [JAVA 백준 알고리즘] 백준 알고리즘 컴파일 에러 해결 방법 (0) 2021.05.16 [JAVA] 타입 변환, 객체 (0) 2021.05.10 [JAVA] 타입변환 (0) 2021.05.06 [JAVA] 오버로딩과 오버라이딩 (0) 2021.05.06