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

+ Recent posts