关于子类能不能重写父类静态方法

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

答案:不能

解释:

(先看代码)

父类 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值