假设我有两个班级
class A {
public static String getMyClassname()
{
// return the class name it was called on
}
}
class B extends A{}
如果我拨打 A.getMyClassname()
,那么java中是否有任何实用工具可以让我获得 A
如果我致电 B.getMyClassname()
,我会得到B
?
答案 0 :(得分:1)
为什么要使用静电?只需覆盖该函数而不使用静态,然后进行方法调用。
这样的事情:
class A {
public String getMyClassname()
{
return "A"
}
}
class B extends A {
@override
public String getMyClassname()
{
return "B"
}
}
答案 1 :(得分:0)
是的,如果你使方法非静态
class A {
public String getMyClassname() {
return this.getClass().getSimpleName();
}
}
class B extends A {}
然后你可以做
A a = new A();
B b = new B();
System.out.println(a.getMyClassname());
System.out.println(b.getMyClassname());
输出
A
B