소프트웨어공학

Java_소스코드_객체지향개념, 상속관계, 업캐스팅, 다운캐스팅

스윙스윙 2021. 12. 21. 13:32

▣ Java_소스코드_객체지향개념, 상속관계, 업캐스팅, 다운캐스팅

 

2014년 33번

정답 : 1번, 4번

특정개체가 하위 클래스의 형에서 상위 클래스의 형으로 캐스팅 되는 것을 업캐스팅이라 하며 "Animal ani_1 = new Dog( );"처럼 부모의 클래스 타입에 자식의 객체를 생성해서 캐스팅하는 것을 말함

 

업캐스팅을 했을 시 중요한 점은 부모가 가진 메소드 또는 자식이 오버라이딩(재정의)한 메소드에 한에서는 접근이 가능하지만 자식만이 가지고 있는 메소드를 호출할 경우 부모 클래스에는 정의된 부분이 없으므로 실행 오류가 발생함

 

상속관계에 있는 클래스를 부모타입에 자식타입의 객체를 생성하여 업캐스팅하는 것은 컴파일 오류가 생기지 않음

업캐스팅된 객체의 메소드를 호출 시 부모가 가지고 있지 않은 메소드(자식만이 가지고 있는 메소드)를 호출하면 실행오류가 발생하게 됨

 

지문의 "ani_1.run();", "ani_3.fly();" 들은 Animal에는 존재하지 않고 자식 클래스에만 존재하는 메소드를 호출하였으므로 실행오류가 발생함