instance of 연산자
instaceof
참조 변수가 instanceof로 형 변환 가능한 타입인지 연산,
형 변환이 가능하다면 true로 반환, 가능하지 못하면 false 반환 한다.
부모 클래스 참조 변수 instance of 연산
class A{
}
class B extends A{
}
public class instanceOf {
public static void main(String[] args){
A a = new A();
if(a instanceof Object){
System.out.println("오브젝트 클래스 형변환 가능");
}
if(a instanceof A) {
System.out.println("자신클래스 형변환 가능");
}
if(a instanceof B) {
System.out.println("자식클래스 형변환가능");
}
}
}
//부모 타입의 객체는
오브젝트 클래스로 형변환이 가능하고 자신 클래스로 형변환이 가능하다.
자식 클래스로는 형변환이 불가능함,
class A{
}
class B extends A{
}
public class instanceOf {
public static void main(String[] args){
B b = new B();
if(b instanceof Object){
System.out.println("오브젝트 클래스 형변환 가능");
}
if(b instanceof A) {
System.out.println("부모클래스 형변환 가능");
}
if(b instanceof B) {
System.out.println("자신클래스 형변환가능");
}
}
}
//자식 타입의 객체는
자식클래스에 포함된 범위 object, 부모클래스 모든 타입들로 형 변환 가능하다.
Tom t1 = new LittleTom(); //다형성으로 이런식의 객체가 생성되면
LittleTom l = (LittleTom) t1; //형 변환 가능
if(t1 instanceof Tom) {
System.out.println("x "); //어쨌든 들어있는건 LittleTom() 객체 이기 때문에 부모타입으로는 당연히
형변환이 가능하고
}
if(t1 instanceof LittleTom) {//자식 타입으로도 형변환이 가능하다.
System.out.println("y ");
}
if(little instanceof Bill) { //*상속 관계가 없어서 비교가 안되면 instanceof 연산자도 사용을 못함 *
System.out.println("instanceof Bill");
}
'JAVA > JAVA 기본 문법' 카테고리의 다른 글
[JAVA]- 리스트 ArrayListTest, Vector (0) | 2019.01.20 |
---|---|
[JAVA]-#Collection API (0) | 2019.01.20 |
[JAVA]-interface (0) | 2019.01.20 |
[JAVA]-abstract (0) | 2019.01.20 |
[JAVA]- static (0) | 2019.01.19 |