One should have a strong understanding of this keyword in inheritance in Java to be familiar with the concept. Instance variable hiding refers to a state when instance variables of the same name are present in superclass and subclass. Now if we try to access using subclass object then instance variable of subclass hides instance variable of superclass irrespective of its return types.
In Java, if there is a local variable in a method with the same name as the instance variable, then the local variable hides the instance variable. If we want to reflect the change made over to the instance variable, this can be achieved with the help of this reference.
Example:
// Java Program to Illustrate Instance Variable Hiding // Class 1 // Helper class class Test {
// Instance variable or member variable
private int value = 10 ;
// Method
void method() {
// This local variable hides instance variable
int value = 40 ;
// Note: this keyword refers to the current instance
// Printing the value of instance variable
System.out.println( "Value of Instance variable : "
+ this .value);
// Printing the value of local variable
System.out.println( "Value of Local variable : "
+ value);
}
} // Class 2 // Main class class GFG {
// Main driver method
public static void main(String args[]) {
// Creating object of current instance
// inside main() method
Test obj1 = new Test();
// Calling method of above class
obj1.method();
}
} |
Value of Instance variable : 10 Value of Local variable : 40
Time Complexity: O(1)
Auxiliary Space: O(1)