부모타입으로 자식 객체를 참조하게 되면, 부모가 가지고 있는 메소드만 사용할 수 있음. 자식객체가 갖고 있는 메소드를 사용하고 싶다면 형변환을 해야 함
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
'4. Programming > 4.1 JAVA' 카테고리의 다른 글
29 - 오버라이딩(overriding) (0) | 2016.06.20 |
---|---|
28 - Super와 부모 생성자 (0) | 2016.06.19 |
27 - 추상 클래스 (0) | 2016.06.17 |
26 - 접근 제한자 (0) | 2016.06.16 |
25 - 상속 (0) | 2016.06.15 |