java中getClass和instance区别

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不仅包括基类,有可能包括其派生类

你可能感兴趣的:(java基础知识)