Java-Instanceof 연산자

김동규·2022년 11월 10일
0

JAVA

목록 보기
33/38

instanceOf 🤔

instanceOf 연산자는 객체가 어떤 클래스인지, 어떤 클래스를 상속받았는지 확인하는데 사용하는 연산자이다.

문법구조는 아래와같다.

object instanceOf type

object 객체 안에 type 주소가 들어있는지 확인하고 결과값(true,false)를 return 한다.

사용 예제를 알아보도록 하자

public class Box {
    public void simpleWrap(){
        System.out.println("Box wrapping");
    }
}

public class PaperBox extends Box {
    public void paperWrap(){
        System.out.println("PaperBox wrapping");
    }
}

public class GoldBox extends PaperBox {
    public void goldWrap(){
        System.out.println("Gold wrapping");
    }
}

public class Main{
	public static void main(String[] args) {
        Box box1 = new Box();
        PaperBox box2 = new PaperBox();
        GoldBox box3 = new GoldBox();

        wrapBox(box1);//Box 는 최상위 부모->가장적은기능
        wrapBox(box2);//Box의 자식 GoldBox의 부모->중간기능
        wrapBox(box3);//GoldBox 는 최하위 자식->가장많은기능

    }
    public static void wrapBox(Box box){
        if(box instanceof GoldBox){//골드박스기능을 가진건 골드박스뿐 골드박스는 이부분에서 걸리게된다.
            ((GoldBox)box).goldWrap();
        }else if(box instanceof PaperBox){//페이퍼박스기능을 가진건 페이퍼박스,골드박스 하지만 골드박스는위에서 걸러지고 페이퍼박스가 남는다.
            ((PaperBox)box).paperWrap();
            
        }else{//남은건 박스 뿐 박스는 이부분에서 걸리게된다.
            box.simpleWrap();
        }
    }
}


profile
HigasiHosi

0개의 댓글