Inheritance
Inheritance
To know the concept of inheritance clearly you must have the idea of class and its
features like methods, data members, access controls, constructors, keywords this,
super etc.
As the name suggests, inheritance means to take something that is already made. It
is one of the most important feature of Object Oriented Programming. It is the
concept that is used for reusability purpose. Inheritance is the mechanism through
which we can derived classes from other classes. The derived class is called as child
class or the subclass or we can say the extended class and the class from which we
are deriving the subclass is called the base class or the parent class. To derive a
class in java the keyword extends is used. To clearly understand the concept of
inheritance you must go through the following example.
The concept of inheritance is used to make the things from general to more specific
e.g. When we hear the word vehicle then we got an image in our mind that it moves
from one place to another place it is used for traveling or carrying goods but the
word vehicle does not specify whether it is two or three or four wheeler because it is
a general word. But the word car makes a more specific image in mind than vehicle,
that the car has four wheels . It concludes from the example that car is a specific
word and vehicle is the general word. If we think technically to this example then
vehicle is the super class (or base class or parent class) and car is the subclass or
child class because every car has the features of it's parent (in this case vehicle)
class.
The following kinds of inheritance are there in java.
Simple Inheritance
Multilevel Inheritance
class B extends A{
public static void main(String args[]){
A a = new A();
a.get(5,6);
a.Show();
}
void display(){
System.out.println("B");
}
}
Multilevel Inheritance
It is the enhancement of the concept of inheritance. When a subclass is derived from
a derived class then this mechanism is known as the multilevel inheritance. The
derived class is called the subclass or child class for it's parent class and this parent
class works as the child class for it's just above ( parent ) class. Multilevel
inheritance can go up to any number of level.
e.g.
class A {
int x;
int y;
int get(int p, int q){
x=p; y=q; return(0);
}
void Show(){
System.out.println(x);
}
}
class B extends A{
void Showb(){
System.out.println("B");
}
}
class C extends B{
void display(){
System.out.println("C");
}
public static void main(String args[]){
A a = new A();
a.get(5,6);
a.Show();
}
}
class B extends A{
int a;
float b;
B( int p, float q){
a = p;
super.b = q;
}
void Show(){
super.Show();
System.out.println("b in super class: " + super.b);
System.out.println("a in sub class: " + a);
}
public static void main(String[] args){
B subobj = new B(1, 5);
subobj.Show();
}
}
Output:
C:\>java B
b in super class: 5.0
b in super class: 5.0
a in sub class: 1
Use of super to call super class constructor: The second use of the keyword super
in java is to call super class constructor in the subclass. This functionality can be
achieved just by using the following command.
super(param-list);
Here parameter list is the list of the parameter requires by the constructor in the
super class. super must be the first statement executed inside a super class
constructor. If we want to call the default constructor then we pass the empty
parameter list. The following program illustrates the use of the super keyword to
call a super class constructor.
class A{
int a;
int b;
int c;
A(int p, int q, int r){
a=p;
b=q;
c=r;
}
}
class B extends A{
int d;
B(int l, int m, int n, int o){
super(l,m,n);
d=o;
}
void Show(){
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("c = " + c);
System.out.println("d = " + d);
}
public static void main(String args[]){
B b = new B(4,3,8,7);
b.Show();
}
}
Output:
C:\>java B
a=4
b=3
c=8
d=7