[JAVA] 다운캐스팅(DownCasting) 정리
2020. 7. 31. 16:49ㆍProgramming Language/JAVA
반응형
■ DownCasting
상속관계의 두 클래스를 기준으로 자식클래스의 참조 변수가 부모클래스의 객체를 참조하는것을 의미한다.
다운캐스팅의 경우 형변환 기호를 사용하면 문법상에 문제가 없는것처럼 보이지만 실질적으로는 런타임오류가 발생한다.
이유는 단순하다. 비교적으로 자식클래스의 구성은 부모클래스의 구성보다 방대할 수 밖에 없다. 자식클래스의 참조변수가 부모클래스의 객체를 참조할 경우에 부모클래스의 구성요소에는 접근이 가능하지만, 자식클래스에 존재하는 인스턴스 변수나 메소드의 접근이 불가능하기 때문이다.
따라서 JVM은 기본자료형과 다르게 참조변수에 경우 정확한 형변환 추리가 불가능하다 판단하여 런타임 에러를 발생시킨다. 하지만 업캐스팅을 선행하고 다운캐스팅한다면 문제없이 캐스팅이 가능하다.
1. 부모 클래스
※ 구성
- 생성자
- 일반메소드(parentMethod)
2. 자식 클래스
※ 구성
- 생성자
- 일반메소드(childMethod)
3. main 메소드
※ 형식
1) 자식클래스 참조변수 = (자식클래스) new 부모클래스();
주의!)
1) 형변환 기호 생략 불가능
2) 업캐스팅이 선행되지 않을경우 런타임 에러 발생
4. 출력결과
SOURCE CODE
반응형
'Programming Language > JAVA' 카테고리의 다른 글
[JAVA] 인터페이스(interface) 정리 (0) | 2020.07.31 |
---|---|
[JAVA] 추상클래스(abstract class) 정리 (0) | 2020.07.31 |
[JAVA] 업캐스팅(Upcasting) 정리 (0) | 2020.07.31 |
[JAVA] 이클립스(Eclipse) 설치 (0) | 2020.07.27 |
[JAVA] 자바 개발 환경 설정 (0) | 2020.05.07 |