레퍼런스형 변수 자식은 부모가 될수있다 – 업캐스팅
부모는 자식이 될수 없으므로 강제적으로 형변환 해줘야함
Parent p = new Child(); // 업캐스팅을 한후
Child c =(Child)p // 다운캐스팅을 해야한다.
이를 다운캐스팅이라한다.
참고로 레퍼런스 변수들 사이의 형변환은 상속관계에서만 가능하다.
다운캐스팅
- 서브클래스로 형변환하는 것이다.
- 참조 가능한 영역이 확대된다.
- 컴파일러에 의해서 자동으로 형변환되지 않는다.
- 명시적으로 캐스팅을 해주어야한다.
- 실행시 예외사항이 발생할 수있으므로 인스턴스의 클래스 형과 참조하는 레퍼런스 변수의 상속 관계를 생각해서 명시적 캐스팅을 해야한다. (이전에 이미 업캐스팅이 된 레퍼런스 값을 다운캐스팅 하는 경우에만 안전하다.)
'Java' 카테고리의 다른 글
패키지 - Pakege (0) | 2016.04.29 |
---|---|
메소드 오버라이딩 (0) | 2016.04.29 |
추상클래스 (0) | 2016.04.29 |
WrapperClass – 오토박싱 오토 언박싱 (0) | 2016.04.29 |
스레드의 상태전이,우선순위,동기화 (0) | 2016.04.05 |