由于静态方法仅限于一个类,因此为什么在下面的代码中子类为什么使用超类的静态方法?

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/

10-11 10:28