子類的父類和接口有相同的成員變量

 接上一篇的 子類的父類和接口有相同的方法,在這裏說一下 子類的父類和接口有相同的成員變量,將會怎樣處理。
接口:
public interface E {
    
    
int x = 1;

}
父類:
public class F {
    
    
int x = 2;

}
子類:
public class G extends F implements E {
    
    
public G() {
        System.out.println(x);
    }


    
public static void main(String[] args) {
        
// TODO Auto-generated method stub
        new G();
    }


}
這裏,大家認爲這個是正確的嗎?
答案呢,它是這個子類出問題了,在編譯時出了問題。
正確的方案是:對於父類的變量,可以用super.x來調用;而接口中的變量,隱含是public static final,所以只能通過E.x來調用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章