Inheritance means The
process of obtaining the data members and methods from one class to another
class is known as inheritance. It is one of the fundamental
features of object-oriented programming.
Important points
In the inheritance the
class which is give data members and methods is known as base or super or
parent class.
The class which is
taking the data members and methods is known as sub or derived or child class.
The data members and
methods of a class are known as features.
The concept of
inheritance is also known as re-usability or extendable classes or sub classing
or derivation.
For Method Overriding
(used for Runtime Polymorphism).
It's main uses are to
enable polymorphism and to be able to reuse code for different classes by
putting it in a common super class
For code Re-usability
A super-class can have
any number of subclasses. But a subclass can have only one super class. Java
does not support multiple inheritance.
The super class and
subclass have “is-a” relationship
between them. Let’s have a look at the
Advantage of
inheritance
If we develop any
application using concept of Inheritance than that application have following
advantages,
Application development
time is less.
Application take less
memory.
Application execution
time is less.
Application performance
is enhance (improved).
Redundancy (repetition)
of the code is reduced or minimized so that we get consistence results and less
storage cost.
Note: In
Inheritance the scope of access modifier increasing is allow but decreasing is
not allow. Suppose in parent class method access modifier is default then it's
present in child class with default or public or protected access modifier but
not private(it decreased scope).
Tpyes of
Inheritance
Based on number of ways
inheriting the feature of base class into derived class we have five types of
inheritance; they are:
Single inheritance
Multilevel inheritance
Multiple inheritance
Hierarchical
inheritance
Hybrid inheritance
Single
inheritance
In single
inheritance there exists single base class and single derived class.
Example:
public
class A {
public void methodA()
{
System.out.println("Iam
from class A");
}
}
public
class B extends A{
public void methodB()
{
System.out.println("Iam
from class B");
}
public
static void main(String args[])
{
B
obj=new B ();
}
Multilevel
inheritance:
In
Multilevel inheritances there exists single base class, single derived class
and multiple intermediate base classes.
Single base
class + single derived class + multiple intermediate base classes.
Intermediate
base classes
An
intermediate base class is one in one context with access derived class and in
another context same class access base class.
Multiple inheritance
In multiple
inheritance there exist multiple classes and singel derived class.
Example:
public
class A {
public void methodA()
{
System.out.println("Iam
from class A");
}
}
public
class B extends A{
public void methodB()
{
System.out.println("Iam
from class B");
}
}
public
class C extends B{
public void methodC()
{
System.out.println("Iam
from class C");
}
{
C obj=new C();
obj.methodA();
obj.methodB();
obj.methodC();
}
}
Iam from
class B
Iam from
class C
Multiple inheritance
In multiple inheritance
there exist multiple base classes and singel derived class.
The concept of multiple
inheritance is not supported in java through concept of classes but it can be
supported through the concept of interface.
Hybrid inheritance
Combination of any
inheritance type
In the combination if
one of the combination is multiple inheritance then the inherited combination
is not supported by java through the classes concept but it can be supported
through the concept of interface.
Important Points for Inheritance:
In java programming one
derived class can extends only one base class because java programming does not
support multiple inheritance through the concept of classes, but it can be
supported through the concept of Interface.
Whenever we develop any
inheritance application first create an object of bottom most derived class but
not for top most base class.
When we create an
object of bottom most derived class, first we get the memory space for the data
members of top most base class, and then we get the memory space for data
member of other bottom most derived class.
Bottom most derived
class contains logical appearance for the data members of all top most base
classes.
If we do not want to
give the features of base class to the derived class then the definition of the
base class must be preceded by final hence final base classes are not reusable
or not inheritable.
If we are do not want
to give some of the features of base class to derived class than such features
of base class must be as private hence private features of base class are not
inheritable or accessible in derived class.
Data members and
methods of a base class can be inherited into the derived class but
constructors of base class can not be inherited because every constructor of a
class is made for initializing its own data members but not made for
initializing the data members of other classes.
An object of base class
can contain details about features of same class but an object of base class
never contains the details about special features of its derived class (this
concept is known as scope of base class object).
For each and every
class in java there exists an implicit predefined super class called
java.lang.Object. because it providers garbage collection facilities to its sub
classes for collecting un-used memory space and improved the performance of
java application.
No comments:
Post a Comment