由于静态方法仅限于一个类,因此为什么在下面的代码中子类为什么使用超类的静态方法?
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
最佳答案
静态方法是可继承但不可覆盖的。
因此,子类可以看到父类的公共静态方法。StaticMethodEg.MyStaticMethod(2313123)
是合法的,但实际上具有误导性,因为它可能给人一种印象,即StaticMethodEg
类具有一个MyStaticMethod(int)
隐藏了父级的静态方法。但事实并非如此。Superclass.MyStaticMethod(2313123)
更清晰。
关于java - 在子类中访问父类(super class)静态方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44289255/