我知道在java中被稱爲field hiding
的概念。但是,我仍然對實例變量沒有被過度佔用感到困惑。在java中說「實例變量沒有被覆蓋」是什麼意思?
根據我目前的知識,覆蓋超類的方法意味着JVM將調用子類的覆蓋方法,儘管超類的方法可用於子類。
而且我通過鏈接閱讀field hiding
了類似的事情: - Hiding Fields
所以,在任何情況下我們都過度擺脫的情況下,如果我們改變在子類繼承的實例變量的值。
我很困惑請幫忙。
我使用下面的超一流: -
public class Animal{
File picture;
String food;
int hunger;
int width, height;
int xcoord, ycoord;
public void makeNoise(){
.........
}
public void eat(){
.............
}
public void sleep(){
..........
}
public void roam(){
.............
}
}
它的子類,如虎,貓,狗,河馬等子類的過騎makeNoise(),吃和漫遊()方法。
但是,每個子類還爲實例變量使用了一組不同的值。根據我的困惑,我很重視所有的實例變量和3種超類動物的方法;並且我仍然使用super
關鍵字爲子類提供了超類實例變量。
請給我們看一些代碼,以便我們能夠理解您在做什麼 – alestanis
您的意思是說**重寫**而不是**重載**? (這是兩回事)。 – Jesper
是的,先生,我說的是重寫而不是重載。 – Ankit