/*내용을 복사 한 후 이클립스에서

ctrl + shift + F를 눌러주세요!!*/

 

 

//P.272 다형성(polymorphism)/ 참조변수의 형변환 ②
// 예문 하나만 더 보고 넘어가겠숨돠~~
//머리에 팍~! 하고 들어오지 않아서..ㅋㅋ

package JavaTest;

public class CastingTest2 {

 public static void main(String[] args) {

  Car7 car = new Car7();    //인스턴스화 시키고,
  
  Car7 car2 = null;             //car2 로 null 값
  
     FireEngine fe = null;
    
     //자 여기도 집중해서 보자!
    
     car.drive();  //그렇지 가능하고,
    
     fe = (FireEngine)car2;   //null 을 가지고 있는 놈끼리.. 암튼.. 부모를 자식으로 다운캐스팅 했음!
     fe = (FireEngine)car;    //근데!!! 이놈이 문제야... 조상타입의 인스턴스는 자손타입의 인스턴스 참조로 허용이 되지 않아!!
    
     // 아...쫌 이해된다..슬슬... 밑에다가 나만의 공식처럼 써야겠어..ㅋㅋ 암튼 위에 놈은 주석처리해라~
    
     car2 = fe;  //자식을 부모로 업캐스팅!
     car2.drive(); //부모(자기) 인스턴스만 사용가능..ㅋ
  
 }

}


//앗! 정리하자 세현아~
//우선 캐스팅을 해서 쓸려면 클래스 참조형까지 쓰고 null 을 적어야해..
// Car car = null;
// Fire fe = null;
// 이렇게 하면 업캐스팅이던 다운캐스팅 이던 할 수 있어~~!
// 자식을 부모로 형변환 하면 업캐스팅 : 이때는 형변환을 생략이 가능하고,
// 부모를 자식으로 형변환 하면 다운캐스팅 : 이때는 형변환 생략 불가능, 복습삼아! 밑에
// car = fe();   정답은? ㅇㅋㅅㅌ
// fe = (FireEngine)car; 정답은? ㄷㅇㅋㅅㅌ
//오케바리! 이해했어!! 아.. 이게 눈에 쫌 숙달이 되야할터인데.ㅋㅋㅋㅋ

Posted by 옆모습오빠
: