티스토리 뷰
Instanceof : 객체 타입 확인
- 부모 타입의 변수가 부모 객체를 참조할 경우, 자식 타입으로 변환할 수 없다
- 부모 변수가 참조하는 객체가 부모 객체인지 자식 객체인지 확인
기본 형태
boolean 변수이름 = parent(객체) instanceof child(타입);
- parent 객체가 child 타입이면 true, 아니면 false 반환
#무조건 boolean으로 선언
예제
- Parent.class
public class Parent {
}
- Parent.class를 상속 받는 Child.class
public class Child extends Parent{
}
- Main
public class InstanceofEx {
public static void method1(Parent parent) {
// Child 타입으로 변환이 가능한지 확인
if (parent instanceof Child) {
Child child = (Child) parent;
System.out.println("Method1 변환 성공");
} else {
System.out.println("Method1 변환 실패");
}
}
public static void method2(Parent parent) {
Child child = (Child) parent; //ClassCastException 발생
System.out.println("Method2 변환 성공");
}
public static void main(String[] args) {
// Child 객체를 매개밧으로 전달
Parent p1 = new Child();
method1(p1); //Method1 변환성공
method2(p1); //Method2 변환 성공
// Parent 객체를 매개값으로 전달
Parent p2 = new Parent();
method1(p2); //Method1 변환 실패
method2(p2); //예외발생 -> 조건 없이 무조건 변환하라고 했기 때문
}
}
'LANGUAGE > JAVA' 카테고리의 다른 글
[JAVA] ECLIPSE 단축키 (0) | 2018.04.15 |
---|---|
[JAVA] 경로 (0) | 2018.04.15 |
[JAVA] WRAPPER CLASS (0) | 2018.04.15 |
[JAVA] GUI를 이용한 성적 처리 (0) | 2018.04.14 |
[JAVA] LINKEDLIST를 이용한 성적 처리 (0) | 2018.03.27 |
댓글