: casting(형변환)이 되는지 안되는지를 판별
: 객체에 원하는 클래스타입이 메모리 할당되었는지 안되었는지를 확인

class AA{}
class BB extends AA{}

class InstanceOf{
 public static void main(String[] args) {
  AA aa = new AA();
  BB bb = new BB();
  AA aa2 = new BB();

  AA aa3 = aa;
  if(aa instanceof AA)  //aa객체속에는 AA클래스가이 생성되어 있다.
   System.out.println("1. TRUE");   //참값이 나온다.
  else
   System.out.println("1. FALSE");

  AA aa4 = bb;
  if(bb instanceof AA) //bb객체속에는 AA클래스가 생성되어 있다.
   System.out.println("2. TRUE");   //참값이 나온다.
  else
   System.out.println("2. FALSE");

  // BB bb2 = (BB)aa;  //형변환해도 안된다.
  if(aa instanceof BB)
   System.out.println("3. TRUE");  
  else
   System.out.println("3. FALSE");   //거짓값이 나온다.

  BB bb3 = (BB)aa2;  //형변환하면 된다.
  if(aa2 instanceof BB)
   System.out.println("4. TRUE");   //참값이 나온다.
  else
   System.out.println("4. FALSE");

 }
}



 

+ Recent posts