게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 instanceof 와 업캐스팅 질문
게시물ID : programmer_5138짧은주소 복사하기
작성자 : 베르캄프
추천 : 0
조회수 : 1376회
댓글수 : 2개
등록시간 : 2014/08/25 11:56:40
class Persons{
}


class Students extends Persons{
}


class Researcher extends Persons{
}


class Professor extends Researcher{
}


public class InstanceofExample {
public static void main(String[] args){
Persons jee = new Students();
Persons kim = new Professor();
Persons lee = new Researcher();
if(jee instanceof Students){
System.out.println("jee는  Students타입");
}
if(jee instanceof Researcher){
System.out.println("jee는  Researcher타입");
}
if(kim instanceof Students){
System.out.println("kim은 Student타입");
}
if(kim instanceof Professor){
System.out.println("kim은 Professor타입");
}
if(kim instanceof Researcher){
System.out.println("kim은 Researcher타입");
}
if(kim instanceof Persons){
System.out.println("kim은 persons타입");
}
if(lee instanceof Professor){
System.out.println("lee는  Profeespor타입");
}
if("java" instanceof String){
System.out.println("\"java\"는 String타입");
}

if(3 instanceof int){
System.out.println("3은 int타입");
}

}


 자바 공부하다 여기서 막히네요. 

if(lee instanceof Professor){
System.out.println("lee는  Profeespor타입");
}

이게 왜 false가 되는건가요? Processor 클래스가 엄연히 Researcher 클래스를 상속받고 있는데, person lee 객체 역시  Researcher와  Processor 클래스의 자식아닌가요?
그리고 마지막에

if(3 instanceof int){
System.out.println("3은 int타입");
}

이것도 왜 false 인가여? 바로 위에 if("java" instanceof String) 이건 true인데 똑같은 방식아닌가요 에효 자바 어려워요 ㅠㅠ
자바책 명품 자바 프로그래밍 보고 있는데, 이 책 말고 딴거봐야하나 ㄷㄷ


전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호