我知道field hiding
java中调用的概念。但是我仍然对实例变量没有被覆盖感到困惑。
根据我目前的知识,覆盖超类的方法意味着JVM将调用子类的覆盖方法,尽管子类可以使用超类的方法。
我field hiding
通过链接阅读了类似的内容:-隐藏字段
因此,无论如何,如果我们更改子类中继承的实例变量的值,我们就会覆盖该实例。
我很困惑请帮忙。
我正在使用以下超类:-
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(){
.............
}
}
它有 Tiger、cat、dog、hippo 等子类。这些子类覆盖 makeNoise()、eat 和 roam() 方法。
但是每个子类也为实例变量使用一组不同的值。
因此,根据我的困惑,我有点重写超类 Animal 的所有实例变量和 3 个方法;super
并且我仍然可以使用关键字为子类提供超类实例变量。