public class Base {
public static void main(String[] args) {
Base b = new Derived();
b.printName();
}
public void printName() {
System.out.println(this.getClass());
}
}
class Derived extends Base {
}
上面的代码打印派生的类名。如何让它打印基类名称。请记住,代码用于对问题进行分类。我实际上不需要打印类名。即使在this
实例中,我也需要printName
中的Base
正好是Derived
的类型。它不是名字this
,任何工作都可以。可能吗?
进一步指明问题。我在基类中使用的某些第三方库没有在Derived类实例中完成它们的工作。而且我认为这是因为他们调用了我传入的this
的getClass()但没有得到他们预期的Class<?>
。我该如何解决这个问题?
答案 0 :(得分:2)
我认为你唯一能做的就是
System.out.println(Base.class);
某些GUI甚至可能在重命名Base类时自动重命名。
答案 1 :(得分:0)
这是不可能的,因为Java方法总是虚拟的(那些你可以覆盖的方法)。