Inheritance is one in which a new class is created that inherits the properties of the already exist class. It supports the concept of code reusability and reduces the length of the code in object-oriented programming.
Types of Inheritance are:
- Single inheritance
- Multi-level inheritance
- Multiple inheritances
- Hybrid inheritance
- Hierarchical inheritance
Example of Inheritance:
C++
#include "iostream"
using namespace std;
class A {
int a, b;
public :
void add( int x, int y)
{
a = x;
b = y;
cout << (a + b) << endl;
}
};
class B : public A {
public :
void print( int x, int y)
{
add(x, y);
}
};
int main()
{
B b1;
b1.print(5, 6);
}
|
Java
class A {
int a, b;
public void add( int x, int y)
{
a = x;
b = y;
System.out.println( "addition of a + b is:" + (a + b));
}
}
class B extends A {
public void sum( int x, int y)
{
add(x, y);
}
public static void main(String[] args)
{
B b1 = new B();
b1.sum( 5 , 6 );
}
}
|
Python3
class A:
def __init__( self ):
self .a = 0
self .b = 0
def add( self , x, y):
self .a = x
self .b = y
print ( "addition of a + b is:" , self .a + self .b)
class B(A):
def sum ( self , x, y):
self .add(x, y)
b1 = B()
b1. sum ( 5 , 6 )
|
Output:
addition of a+b is:11
Here, class B is the derived class which inherit the property(add method) of the base class A.
Polymorphism:
Polymorphism is that in which we can perform a task in multiple forms or ways. It is applied to the functions or methods. Polymorphism allows the object to decide which form of the function to implement at compile-time as well as run-time.
Types of Polymorphism are:
- Compile-time polymorphism (Method overloading)
- Run-time polymorphism (Method Overriding)
Example of Polymorphism:
C++
#include "iostream"
using namespace std;
class A {
int a, b, c;
public :
void add( int x, int y)
{
a = x;
b = y;
cout << "addition of a+b is:" << (a + b) << endl;
}
void add( int x, int y, int z)
{
a = x;
b = y;
c = z;
cout << "addition of a+b+c is:" << (a + b + c) << endl;
}
virtual void print()
{
cout << "Class A's method is running" << endl;
}
};
class B : public A {
public :
void print()
{
cout << "Class B's method is running" << endl;
}
};
int main()
{
A a1;
a1.add(6, 5);
a1.add(1, 2, 3);
B b1;
b1.print();
}
|
Java
class A {
int a, b, c;
public void add( int x, int y)
{
a = x;
b = y;
System.out.println( "addition of a+b is:" + (a + b));
}
public void add( int x, int y, int z)
{
a = x;
b = y;
c = z;
System.out.println( "addition of a+b+c is:" + (a + b + c));
}
public void print()
{
System.out.println( "Class A's method is running" );
}
};
class B extends A {
public void print()
{
System.out.println( "Class B's method is running" );
}
public static void main(String[] args)
{
A a1 = new A();
a1.add( 6 , 5 );
a1.add( 1 , 2 , 3 );
B b1 = new B();
b1.print();
}
}
|
Output:
addition of a+b is:11
addition of a+b+c is:6
Class B's method is running
Difference between Inheritance and Polymorphism:
S.NO | Inheritance | Polymorphism |
---|
1. | Inheritance is one in which a new class is created (derived class) that inherits the features from the already existing class(Base class). | Whereas polymorphism is that which can be defined in multiple forms. |
2. | It is basically applied to classes. | Whereas it is basically applied to functions or methods. |
3. | Inheritance supports the concept of reusability and reduces code length in object-oriented programming. | Polymorphism allows the object to decide which form of the function to implement at compile-time (overloading) as well as run-time (overriding). |
4. | Inheritance can be single, hybrid, multiple, hierarchical and multilevel inheritance. | Whereas it can be compiled-time polymorphism (overload) as well as run-time polymorphism (overriding). |
5. | It is used in pattern designing. | While it is also used in pattern designing. |
6. | Example : The class bike can be inherit from the class of two-wheel vehicles, which is turn could be a subclass of vehicles. | Example : The class bike can have method name set_color(), which changes the bike’s color based on the name of color you have entered. |