What does it mean to say "Instance variables are not over-rided" in java?
Posted
by
Ankit
on Stack Overflow
See other posts from Stack Overflow
or by Ankit
Published on 2012-10-22T09:24:33Z
Indexed on
2012/10/22
11:00 UTC
Read the original article
Hit count: 246
java
|member-hiding
I am aware of the concept called field hiding
in java. But still I am having a confusion in relation to instance variable being not over-ridden.
According to my present knowledge, overriding a method of super-class means that the JVM will call the sub-class's over-ridden method though the super-class's method is available to the sub-class.
And I read the similar thing for field hiding
via the link:- Hiding Fields
So, in any case we are over-ridding the instance if we change the values of the inherited instance variable in the sub-class.
I am confused please help.
I am using the following super-class:-
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(){
.............
}
}
It has sub-classes like Tiger, cat, dog,hippo etc. The sub-classes over-ride the makeNoise(), eat and roam() method.
But each sub-class also uses a different set of values for instance variables.
So as per my confusion, I am kind-of overriding all the instance variables and 3 methods of the super-class Animal; and I still have the super-class instance variables available to the sub-class with the use of the super
keyword.
© Stack Overflow or respective owner