참조변수의 형변환
-
사용할 수 있는 멤버의 갯수를 조절하기 위해 사용
-
주소값, 객체는 바뀌지 않는다
-
조상, 자손 관계의 참조변수는 서로 형변환 가능 (조상-자손 관계일 때만 가능하다!)
- 형변환을 하면, 멤버의 갯수를 늘렸다 줄였다 할 수 있다.
-
참조변수가 가리키는 실제 객체(인스턴스)가 중요하다.
- 다형성에서, Tv t = new SmartTv(); 는 가능한데, 반대로는 불가능 했던 것과 비슷한 원리이다.
- 참조변수 형변환에서 중요한 것은, "인스턴스의 멤버 갯수"이다.
- 인스턴스의 멤버 갯수 기준으로, 참조 변수의 사용 멤버 수가 적은 방향으로만 형변환이 가능하다
- 인스턴스의 멤버 갯수 기준보다, 참조 변수의 사용 멤버 수가 더 많은 방향으로는 변환할 수 없다!
-
instance of 연산자
참조변수의 형변환 가능 여부 확인에 사용. 가능하면 ture 반환.
형변환 전에 반드시 instanceof로 확인해야 함!
자기 자신과 조상클래스(전부)에 대해 반드시 true가 나옴 -> 형변환 가능
false가 나오는 경우 -> 형변환 불가능
void doWork(Car c) { // 참조변수 타입이 Car임 -> new Car(); new FireEngine(); new Ambulance();
// 다형성으로 인해, 자기 자신 포함, 자손 클래스들 전부 사용 가능
if (c instanceof FireEngine) { // 1. 형변환 가능 여부 확인
FireEngine fe = (FireEngine) c; // 2. 형변환
fe.water();
}
// 아래 코드는 서로 동일하다
// 1.
doWork(new FireEngine());
// 2.
Car c = new FireEngine();
doWork(c);
Author And Source
이 문제에 관하여(참조변수의 형변환), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimsy8979/참조변수의-형변환저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)