[IT]/java
java.Polymorphism.ObjectCasting(캐스팅)
givemebro
2021. 3. 2. 16:55
반응형
Object Casting : 다형성 적용된 참조변수로 자식의 독자적 멤버(변수, 메서드)에 직접 접근 불가
> 접근을 위해 Object Casting을 적용
package step13;
// 다형성 적용시 확인해야 하는 사항
// Object Casting 필요성
class Animal {
public void sleep() {
System.out.println("자다");
}
public void eat() {
System.out.println("동물이 먹다");
}
}
class Person extends Animal {
public void eat() {
System.out.println("사람이 수저로 먹다");
}
public void study() {
System.out.println("사람이 공부하다");
}
}
public class TestPolymorphism4 {
public static void main(String[] args) {
// 다형성 적용 : 자식객체를 부모타입 변수에 참조
Animal a = new Person();
a.sleep();// 상속받은 부모메서드 사용 가능
a.eat();// 오버라이딩한 메서드 사용 가능
// a.study();// 자식의 독자적 멤버는 직접 접근 불가
// > 이유: a변수의 타입은 Animal이므로
// > 해결: a의 타입을 캐스팅
((Person) a).study();
}
}
반응형