: 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");
}
}
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");
}
}