반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

bro's coding

java.Polymorphism.ObjectCasting(캐스팅) 본문

[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();
	}
}
반응형

'[IT] > java' 카테고리의 다른 글

java.Design pattern  (0) 2021.03.04
java.abstract(추상화)  (0) 2021.03.04
java.final  (0) 2021.03.04
java.static(정적)  (0) 2021.03.04
java.Polymorphism.instanceof(객체 타입 비교)  (0) 2021.03.02
java.Polymorphism(다형성)  (0) 2021.03.02
java.annotation(어노테이션)  (0) 2021.03.02
java.overriding.toString  (0) 2021.03.02
Comments