참조변수의 형 변환
1. 서로 상속관계에 있는 타입간의 형변환만 가능하다.
2. 자손 타입에서 조상타입으로 형변환하는 경우 , 형변환은 생략가능하다
설명서
기본형 변수뿐만 아니라 참조형 변수도 형변환이 가능합니다.
다만 조상자손관계에 있을 때만 형변환이 가능하죠.
자손타입을 조상타입으로 형변환 하는 것을 업캐스팅이라고 하고요.
조상타입을 자손타입으로 형변환 하는 것을 다운캐스팅이라고 합니다.
상속계층도에서 봤을 때 조상으로 가면 올라가는 거니까 up이고 반대는 내려가는 거니까 down입니다.
형변환할 때는 클래스간의 상속계층도를 간단히 그려보면 쉽게 해결됩니다.
형변환 방법은 간단합니다. 기본형 변수의 형변환과 똑같이... 괄호 안에다 변환하고자 하는 타입을 적어주기만 하면 됩니다.
참조형변수의 형변환도... 경우에 따라서 형변환을 생략할 수 있는데요...
자손타입에서 조상타입으로 형변환 하는 경우에는 생략이 가능합니다.
자손타입에서 조상타입으로 형변환된다는 것은 리모콘의 버튼 개수가 줄어든다는 것을 의미하는데요.
리모콘의 버튼 개수가 많아지는 것은 문제가 되도, 적어지는 것은 문제가 되지 않기 때문에... 형변환을 생략할 수 있도록 한 것입니다.
참조변수의 형변환은... 단지 참조할 수 있는 멤버의 개수가 달라질 뿐 다른 변화는 아무것도 없습니다.
참조변수가 저장하고 있는 객체의 주소값이 바뀌는 것도 아니고... 인스턴스에 영향을 주지도 않습니다.
코드를 보면... Car클래스와 Car클래스를 조상으로 하는 FireEngine클래스와 Ambulance클래스가 정의되어 있는데요.
이 클래스들의 상속관계를 그려보면 이와 같습니다...
FireEngine타입의 참조변수를 Car타입으로 형변환하려면... 괄호안에 Car를 적어주면 됩니다.
여기서는 자손타입에서 조상타입으로... 즉 리모콘의 버튼개수가 줄어드는 쪽으로 형변환을 하는 것이기 때문에...
형변환을 생략할 수 있습니다.
바로 아래에... 그 반대의 경우인... car타입의 참조변수를 자손인 FireEngine타입으로 변환하는 경우에는 형변환을 생략할 수 없습니다.
FireEngine클래스와 Ambulance클래스는 둘다 Car를 조상으로 하고 있지만... 두 클래스 사이에는 어떠한 관계도 성립하지 않기 때문에...
형변환이 불가능합니다.
'Backend > java' 카테고리의 다른 글
Instanceof 연산자란 무엇인가. (0) | 2018.08.12 |
---|---|
참조변수의 형변환 예제 (0) | 2018.08.12 |
다형성이란 무엇인가3 (0) | 2018.08.12 |
다형성이란 무엇인가2 (0) | 2018.08.12 |
다형성이란 무엇인가. (0) | 2018.08.12 |
#IT #먹방 #전자기기 #일상
#개발 #일상