在 Java 中,可以安全地假设getClass()
在用作基类的类的构造函数中调用将提供有关派生类的信息,而不是基类的类的信息?
它似乎有效,但我想这并不一定意味着它是安全的。
例如,如果我有以下两个类:
public class Parent {
public Parent() {
System.out.println(getClass().getName());
}
}
And:
public class Derived extends Parent {
public Derived() {
super();
}
public static void main(String... args) {
new Derived();
}
}
当我运行main()
它打印的派生类中的方法:Derived
(这就是我所希望的)。但我可以依赖 JVM 上的这种行为吗?
getClass
是其中之一Object
的方法并返回runtime类的this http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#getClass%28%29:
返回此对象的运行时类。返回的 Class 对象是由所表示的类的静态同步方法锁定的对象。
所以是的,它总会回来Derived
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)