4. Programming/4.1 JAVA

30 - 클래스 형변환

이도저도 아닌 사람 2016. 6. 27. 17:00

부모타입으로 자식 객체를 참조하게 되면, 부모가 가지고 있는 메소드만 사용할 수 있음. 자식객체가 갖고 있는 메소드를 사용하고 싶다면 형변환을 해야 함


public class Car{     public void run(){

System.out.println("달리는 중");

}

}


car 클래스를 상속받는 Bus 클래스

public class Bus extends Car{

 public void hooter(){

System.out.println("빵빵");

}

}


부모 타입으로 자식 객체를 참조할 수 있음

 - 부모타입으로 자식 객체를 참조하게 되면, 부모가 가지고 있는 메소드만 사용할 수 있음


public class BusExam{

public static void main(String args[]){

Car car = new Bus();

car.run();

car.hooter(); // 오류 발생

}

}


car.hooter(); 를 사용하기 위해서는 Bus 타입의 참조변수로 참조해야 함



public class BusExam{

public static void main(String args[]){

Car car = new Bus();

car.run();


Bus bus = (Bus)car;

car.hooter();

}

}


상속 관계에 있을때 객체끼리도 형변환이 가능

부모 타입으로 자식객체를 참조할 때 묵시적으로 형변환이 일어남

부모타입의 객체를 자식 타입으로 참조할 때 명시적으로 형변한을 해줘야 함



참고 : tryhelloworld.co.kr