package kkk;


public class InstanceOf {

public static void wrapBox(Box box) {


//box 가 GoldPaperBox로 형변환이 가능하다면 실행

if (box instanceof GoldPaperBox) {

((GoldPaperBox) box).godWrap();


//box 가 PaperBox로 형변환이 가능하다면 실행

} else if (box instanceof PaperBox) {

((PaperBox) box).PaperWrap();


//나머지

} else {

box.simpleWrap();

}

}

public static void main(String[] args) {

Box box1 = new Box();

PaperBox box2 = new PaperBox();

GoldPaperBox box3 = new GoldPaperBox();

wrapBox(box1);

wrapBox(box2);

wrapBox(box3);

}

}


class Box {

public void simpleWrap() {

System.out.println("simple wrap");

}


}


class PaperBox extends Box {

public void PaperWrap() {

System.out.println("paper wrap");

}


}


class GoldPaperBox extends PaperBox {

public void godWrap() {

System.out.println("gold wrap");

}

}


인스턴스의 자료형에 따라서 호출할 메소드를 다르게 할떄 
결과는 true 또는 false를 반환한다. 



'JAVA > 자바' 카테고리의 다른 글

자바 Swing 텍스트필드 포맷지정  (0) 2015.07.05
자바 Swing ComboBox 값변경 확인  (0) 2015.07.05
자바 Swing JList 스크롤  (0) 2015.07.03
자바 현재시간 출력  (0) 2015.07.01
자바 클래스 배열 생성  (0) 2015.06.30
블로그 이미지

왕왕왕왕

,