instanceof 연산자
• 형변환이 가능한지를 묻는 연산자입니다.
• 형변환이 가능하면 true를 가능하지 않으면 false를 반환합니다.
File Info
package com.ext2; | SuperEx01.java |
출력 결과
소스코드
package com.ext2;
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 goldWrap() {System.out.println("gold wrap");} }
public class InstanceOfEx {
public static void wrapBox(Box box) { if(box instanceof GoldPaperBox) //box가 GoldPaperBox로
형변환
가능하다면 ((GoldPaperBox)box).goldWrap(); else if(box instanceof PaperBox) //box가 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(); //컴파일
완료된
후
문장이
끝난후
참조변수에
대한
자료형
정보를
가지고
있지만 //실제로
뭘
참조하는
지는(new Box(), new PaperBox(), new GoldPaperBox()) 객체
생성으로
지워지게
됩니다. wrapBox(box1); wrapBox(box2); wrapBox(box3); } } |