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인데 똑같은 방식아닌가요 에효 자바 어려워요 ㅠㅠ
자바책 명품 자바 프로그래밍 보고 있는데, 이 책 말고 딴거봐야하나 ㄷㄷ