Lets discuss about one of the interesting and widely used keyword 'super'.super keyword is used to access the properties of the parent class.
super with respect to variables:
We use super keyword when we want to access the variables of the immediate parent class.Example:
class Parent
{
int a=5;
}
class Child extends Parent
{
int a=10;
void printvalue()
{
System.out.println("Child class variable is "+a); //Child class member
System.out.println("Parent class variable is "+super.a); //Parent class member
}
}
class Mainclass
{
public static void main(String []args)
{
Child c=new Child();
c.printvalue();
}
}
Output:Child class variable is 10 Parent class variable is 5Here if we do not use super the value of a is '10'(child class) if we use super the value initialized in the parent class is assigned to a.
Super with respect to methods:
Super keyword is used to invoke the methods in the immediate parent class.It is especially used incase of method overriding.class Parent
{
int i=10;
void message()
{
System.out.println("parent class variable "+i);
}
}
class Child extends Parent
{
int i=5;
void message()
{
super.message();
System.out.println("child class variable"+i);
}
}
class Mainclass
{
public static void main(String []args)
{
Child c=new Child();
c.message();
}
}
Output:parent class variable is 10. child class variable is 5.
Super with respect to constructors:
As we all know,constructors are primarily known for initializing the variables.To invoke a parent class constructor,the super must be placed in the first line of the Child class constructor.class Parent
{
int i;
Parent(int b)
{
i=b;
}
}
class Child extends Parent
{
int i;
Child(int a,int b)
{
super(b);
i=a;
}
void show()
{
System.out.println("child class variable "+i);
System.out.println("parent class variable"+super.i);
}
}
class Mainclass
{
public static void main(String []args)
{
Child c=new Child(5,10);
c.show();
}
}
Output:child class variable 5 parent class variable 10
No comments:
Post a Comment