答案:不能
解释:
(先看代码)
父类 Father.java:
public class Father {
public static String test = "父类static变量";
public static void test(){
System.out.println("这是父类 public static void方法");
}
}
复制代码
子类 Son.java 继承父类
public class Son extends Father {
public static String test = "子类static变量";
public static void test(){
System.out.println("子类static方法");
}
}
复制代码
二儿子 Son2.java 也继承父类
public class Son2 extends Father {
public static String test = "二儿子static变量";
public static void test() {
System.out.println("二儿子static方法");
}
}
复制代码
主程序类 Application.java:
public class Application {
public static void main(String[] args) {
Father father = new Father();
Son son = new Son();
Son2 son2 = new Son2();
System.out.println(father.test);
System.out.println(son.test

Java中子类不能重写父类的静态方法。静态方法属于类,而非实例,因此每个类只有一个静态方法的空间。尽管子类可以定义与父类同名的静态方法,但这并不构成重写,实际上是两个不同的方法。在子类中直接调用静态方法会调用父类的方法。试图在子类中注解静态方法为重写将导致编译错误,表明这不是重写操作。
最低0.47元/天 解锁文章
1120

被折叠的 条评论
为什么被折叠?



