有方法覆盖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();}

函数可以打印“爸爸”。有没有办法让它印上“儿子”?


忽然笑
浏览 366回答 3
3回答

FFIVE

是。但就变量而言,它是覆盖(赋予变量新值)。给函数提供新的定义是覆盖)。Just don't declare the variable but initialize (change) in the constructor or static block.在父类块中使用时,该值将得到反映。如果变量是静态的,则在使用静态块初始化时更改值,class Son extends Dad {     static {         me = 'son';      }}或者更改构造函数。您还可以在以后的任何块中更改该值。它将在超类中得到反映。

肥皂起泡泡

是的,只要覆盖printMe()方法:class Son extends Dad {         public static final String me = "son";         @Override         public void printMe() {                 System.out.println(me);         }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java