假设我有两节课

class A {
public static String getMyClassname()
 {
    // return the class name it was called on
 }
}


class B extends A{}


java中是否有任何实用程序允许我调用 A.getMyClassname()我会得到 A
如果我呼叫 B.getMyClassname(),我会得到B吗?

最佳答案

是的,如果您将方法设为非静态

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

07-24 09:49