跳到主要内容

子类调用父类的getclass()结果是父类还是子类

· 阅读需 1 分钟
Hanasaki

尝试

父类为Person,子类为Studnet

Student

 public void equal(Object obj) {
System.out.println(super.getClass()+"/"+obj.getClass());
System.out.println(super.getClass().getSuperclass()+"/"+obj.getClass());
}

Main

   Student student=new Student("Liuchang",18,1);
Student stu=new Student("Liuchang",18,1);
stu.equal(student);

在Main方法中执行stu.equal(student)得到输出如下:

class Student/class Student
class Person/class Student

可见在子类调用父类的getclass()得到的结果是子类。 而super.getClass().getSuperclass()可以得到父类。