본문 바로가기

Java

업캐스팅과 다운캐스팅

레퍼런스형 변수 자식은 부모가 될수있다 – 업캐스팅

부모는 자식이 될수 없으므로 강제적으로 형변환 해줘야함

Parent p = new Child(); // 업캐스팅을 한후

Child c =(Child)p // 다운캐스팅을 해야한다.

이를 다운캐스팅이라한다.

참고로 레퍼런스 변수들 사이의 형변환은 상속관계에서만 가능하다.

다운캐스팅

  1.  서브클래스로 형변환하는 것이다.
  2. 참조 가능한 영역이 확대된다.
  3.  컴파일러에 의해서 자동으로 형변환되지 않는다.
  4.  명시적으로 캐스팅을 해주어야한다.
  5.  실행시 예외사항이 발생할 수있으므로 인스턴스의 클래스 형과 참조하는 레퍼런스 변수의 상속 관계를 생각해서 명시적 캐스팅을 해야한다. (이전에 이미 업캐스팅이 된 레퍼런스 값을 다운캐스팅 하는 경우에만 안전하다.)


'Java' 카테고리의 다른 글

패키지 - Pakege  (0) 2016.04.29
메소드 오버라이딩  (0) 2016.04.29
추상클래스  (0) 2016.04.29
WrapperClass – 오토박싱 오토 언박싱  (0) 2016.04.29
스레드의 상태전이,우선순위,동기화  (0) 2016.04.05