既然静态方法仅限于一个类,为什么子类在下面的代码中使用父类(super class)的静态方法?
public class StaticMethodEg extends Superclass {
public static void main(String args[]) {
System.out.println(StaticMethodEg.MyStaticMethod(2313123));
}
}
class Superclass {
public static int MyStaticMethod(int i) {
Integer value = new Integer(i);
return value + 1234;
}
}
输出
2314357
最佳答案
静态方法可继承但不可覆盖。
因此,子类看到父类的公共(public)静态方法。
StaticMethodEg.MyStaticMethod(2313123)
是合法的,但确实具有误导性,因为它给人的印象是 StaticMethodEg
类有一个 MyStaticMethod(int)
隐藏了父类的静态方法。但事实并非如此。
Superclass.MyStaticMethod(2313123)
更清晰。
关于java - 访问子类中的父类(super class)静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44289255/