java - 访问子类中的父类(super class)静态方法

标签 java static-methods

既然静态方法仅限于一个类,为什么子类在下面的代码中使用父类(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/

相关文章:

java - Spring Boot 无法将 string 类型转换为 long 类型

c++ - 静态随机数生成器丢失全局变量的种子

android - 我的静态方法的每秒 HttpsUrlConnection 请求在 Android 上都会失败

java - 使用日历当前日期设置对象

java - j2me中是否可以同时打开和编辑2个或更多的RecordStores?

android - 如何在不传递上下文引用的情况下从类中的静态方法访问 Android SharedPreferences?

c# - 如何在 public static void 方法中创建消息框

java - 无法静态引用非静态方法

java - 在 JLayeredPane 上添加两个 JPanel 后没有任何输出

JAVA - 按降序对链表进行排序