본문 바로가기

java/자바

chap[10-2] 객체의 타입변환

업캐스팅 : 자식이 부모 타입으로 ! ---> 항상 가능 --> 컴파일러가 해준다
다운캐스팅: 부모가 자식타입으로 ! ---> 안될때 있음 --> 수동으로

업캐스팅

자식 --> 부모로

컴파일러가 매번 붙여서 오류가 안난거다

A a = (A) new B();

 

다운캐스팅

부모-> 자식으로

 

 

메모리로 이해하는 다운캐스팅 --> 맨 마지막 안됨

왼쪽은 자식타입 = 부모타임 이렇게 하니까 안됨

오른쪽은 C가 없음

 

 

선언한 타입의 멤버만 사용가능하다.

위에는 B로 선언해서 B의 값에 접근한다

 

아래에는 A로 선언해서 B의 값에 접근 못한다.

 

==> 왼쪽이 중요하다

 

 

첫번째는 E

E의 값만 접근 가능 //3, E클래스

 

두번째는 F

F 값 접근 가능, E값 접근 가능

 

 

다형성 타입

왼쪽은 부모 = 오른쪽은 자식 

자식값 접근 안된다. 이미 부모꺼로 가리키고 있다.

 

 

 

왼쪽이 중요!!!

첫번째: A 

두번째 : A B