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

Pictorial Representation of Simple and Multilevel
Inheritance

Simple
Inheritance

Multilevel Inheritance

Simple Inheritance

When a subclass is derived simply from it's parent
class then this mechanism is known as simple inheritance. In case of
simple inheritance there is only a sub class and it's parent class. It is also
called single inheritance or one level 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.

The mechanism of inheriting the features of more than
one base class into a single class is known as multiple inheritance. Java does not support multiple inheritance but
the multiple inheritance can be achieved by using the interface.

In Java Multiple Inheritance can be achieved through
use of Interfaces by implementing more than one interfaces in a class.

super keyword

The super is java keyword. As the name suggest super is
used to access the members of the super class.It is used for two purposes in
java.

The first use of keyword super is to access the
hidden data variables of the super class hidden by the sub class.

e.g. Suppose class A is the super class that has two
instance variables as int a and float b. class B is the subclass that also
contains its own data members named a and b. then we can access the super class
(class A) variables a and b inside the subclass class B just by calling the
following command.

super.member;

Here member can either be an instance variable or
a method. This form of super most useful to handle situations where the local
members of a subclass hides the members of a super class having the same name.
The following example clarify all the confusions.

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.