有没有办法使用继承的超类方法获取类名?

时间:2016-01-22 20:45:34

标签: java oop

假设我有两个班级

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

2 个答案:

答案 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