区别
类名.class叫做“类字面量”,因class是关键字, 所以类名.class编译时确定。而getClass()是某个具体的实例对象来调用,是运行时确定的,getClass()是动态而且是final的
实例
- 抽象类
package com.kang;
public abstract class Animal {
}
- 子类
package com.kang;
public class Dog extends Animal {
public static void main(String[] args) {
Animal animal = new Dog();
System.out.println(animal.getClass().getName());
//输出com.kang.Dog
System.out.println(Animal.class.getName());
//输出com.kang.Animal
}
}
运行结果:
com.kang.Dog
com.kang.Animal