java中getClass和instance区别
public class Person {
}
public class Son extends Person {
}
@Test
public void classAndInstanceOfTest(){
Person person = new Person();
Son son = new Son();
System.out.println(son.getClass().equals(Person.class));
System.out.println(son.getClass().equals(Son.class));
System.out.println(son instanceof Person);
System.out.println(son instanceof Son);
}
结果:
false,true,true,true
getClass
Returns the runtime class of this Object.(返回这个对象在运行时的类型)
即,getClass返回的是当前对象的类(相对严格),而instanceof
不仅包括基类,有可能包括其派生类