首页 > Java > java教程 > Java 中的类变量可以被重写吗?

Java 中的类变量可以被重写吗?

Patricia Arquette
发布: 2024-12-02 12:24:12
原创
786 人浏览过

Can Class Variables Be Overridden in Java?

Java 中重写类变量:用词不当

在 Java 中,类变量不能被重写。相反,看似被覆盖的变量实际上是隐藏变量。为了阐明这个概念,我们看一个例子:

class Dad {
    protected static String me = "dad";

    public void printMe() {
        System.out.println(me);
    }
}

class Son extends Dad {
    protected static String me = "son";
}

public void doIt() {
    new Son().printMe(); // Prints "dad"
}
登录后复制

这里,函数 doIt 打印“dad”,因为 Son 中的类变量 me 只是隐藏了从爸爸那里继承的 me。

覆盖和隐藏之间的主要区别在于,覆盖用子方法实现替换父方法实现,而隐藏只是使子成员无法访问父成员class.

因此,没有正确的方法来覆盖类变量。相反,要在给定示例中打印“son”,需要修改构造函数或将 name 参数传递给方法,如下所示:

public class Son extends Dad {
    private String me;

    public Son(String me) {
        this.me = me;
    }

    @Override
    public void printMe() {
        System.out.println(me);
    }
}
登录后复制

以上是Java 中的类变量可以被重写吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板