자바의정석

[자바의 정석 - 기초편] ch7-24,25 참조변수의 형변환(1)

유호야 2022. 3. 20. 18:20
반응형

ch7-24 참조변수의 형변환

결론
- 사용할 수 있는 멤버의 갯수를 조절하는 것 
- 조상 자손 관계의 참조변수는 서로 형변환 가능 

기본형의 형변환은 값이 바뀌는 것이지만, 
주소값이나 객체가 변환하는 것이 아니라 사용하는 멤버의 개수를 조절한다. 

조상 자손 관계만 형변환이 가능하다. 
형제관계 따위 없다. 

조상 Car c = f ; (자손) - 이 경우에는 생략 가능

리모콘을 변경하는 것과 같다. 사용할 수 있는 멤버의 개수가 늘렸다 줄었다 하는 것 

 

개념적으로 자손의 값이 조상의 값에 형변환 ( ) 없이 가능


 Car car = null;

FireEngine fe = new FireEngine();

car = fe; >> // car = (Car)fe; 에서 형변환이 생략됨

car 자체가 fe의 주소값이 가리키는 곳을 가리키게 된다. 

 

fe.water();
car = fe; 
//car.water(); 
// water 메서드 호출 불가능
// 왜냐하면 Car 타입에다가 fe(FireEngine)타입을 대입했기 때문에 
// Car 틀에다가 집어넣은 것 즉 Car 타입에는 water() 기능은 없기 때문에 
fe2 = (FireEngine)car;
//fe2.water(); 가능하다. 
//car가 가리키는 것이 fe2 이기 때문.... 
//헷갈리는구만

 

반응형