在Java语言中,假设在用作基类的类的构造函数中调用的getClass()
将提供有关派生类的信息,而不是基类的类,这样做安全吗?
它似乎是有效的,但我猜这并不一定意味着它是安全的。例如,如果我有以下两个类:
public class Parent {
public Parent() {
System.out.println(getClass().getName());
}
}
和:
public class Derived extends Parent {
public Derived() {
super();
}
public static void main(String... args) {
new Derived();
}
}
当我在派生类中运行main()
方法时,它输出:Derived
(这正是我所希望的)。但是,我可以跨JVM依赖该行为吗?
发布于 2012-09-28 18:50:29
getClass
是Object
的and returns the class of this
方法之一
返回此对象的运行时类。返回的class对象是被表示类的静态同步方法锁定的对象。
所以,是的,它总是会返回Derived
。
https://stackoverflow.com/questions/12638504
复制相似问题