黑马程序员技术交流社区

标题: Java静态方法问题 [打印本页]

作者: rxtm    时间: 2015-7-23 12:20
标题: Java静态方法问题
比如说现在两个类有继承关系, People类中有一个静态方法getClassName(),可以获取到当前的类名。Teacher类继承自People类。现在在Test方法里,调用Teacher.getClassName(),得到的类名却是People的类名,当然这也很好理解为什么,我就是想问问有没有什么办法可以使Teacher.getClassName()得到的是Teacher的类名。只能在People的getClassName()里面改代码,不可以动Teacher这个类。

以下附上简单代码。

Java code

package com.test;

public class People {

    public static String getClassName() {
        return new Object() {
            private String getName() {
                String className = getClass().getName();
                return className.substring(0, className.indexOf("$"));
            }
        }.getName();
    }

}

Java code
package com.test;

public class Teacher extends People{
}

Java code

import com.test.Teacher;

public class Test {
    public static void main(String[] args) throws Exception {
        System.out.println(Teacher.getClassName());
    }
}





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2