在Java中,可以安全地假设getClass()在用作基类的类的构造函数内部调用将提供有关派生类的信息,而不是基类的类吗?
它似乎工作,但我想这并不一定意味着它是安全的.例如,如果我有以下两个类:
public class Parent {
public Parent() {
System.out.println(getClass().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
和:
public class Derived extends Parent {
public Derived() {
super();
}
public static void main(String... args) {
new Derived();
}
}
Run Code Online (Sandbox Code Playgroud)
当我main()在Derived类中运行该方法时,它会打印:( Derived这是我所希望的).但我可以依赖JVM的这种行为吗?
ass*_*ias 15
getClass是一个Object方法,并返回运行时类this:
返回此Object的运行时类.返回的Class对象是由所表示的类的静态同步方法锁定的对象.
所以,是的,它将永远回归Derived.
| 归档时间: |
|
| 查看次数: |
4235 次 |
| 最近记录: |