Inheritance

From JholJhapata

Inheritance is a concept in which you define parent classes and child classes.

The child classes inherit methods and properties of the parent class, but at the same time, they can also modify the behavior of the methods if required. The child class can also define methods of its own if required.

Types of Inheritance

There are Various types of inheritance:

Single Inheritance

In Single Inheritance one class extends another class (one class only).

   class Shapes
   {
      //Some Code
   }
   class Square : Shapes
   {
      //Some Code
   }

In above example, Class Square extends only Class Shapes. Class Shapes is a super class and Class Square is a Sub-class.

Multiple Inheritance

In Multiple Inheritance, one class extending more than one class. C# or Java does not support multiple inheritance. We use Interface Inheritance as an alternative to multiple inheritance

   class A
   {
      //Some Code
   }
   class B 
   {
      //Some Code
   }
   class C: A,B
   {
      //Some Code
   }

As per above code, Class C extends Class A and Class B both.

Multilevel Inheritance

In Multilevel Inheritance, one class can inherit from a derived class. Hence, the derived class becomes the base class for the new class.

   class Shapes
   {
      //Some Code
   }
   class Triangles : Shapes
   {
       //Some Code
   }
   class RightTriangles : Triangles
   {
       //Some Code
   }

As per shown in diagram Class RightTriangles is subclass of Triangles and Triangles is a of subclass Class Shapes.

Hierarchical Inheritance

In Hierarchical Inheritance, one class is inherited by many sub classes.

   class Shapes
   {
      //Some Code
   }
   class Triangles : Shapes
   {
       //Some Code
   }
   class Square : Shapes
   {
       //Some Code
   }
   class Circle : Shapes
   {
       //Some Code
   }

As per above example, Class Triangles, Square, and Circle inherit the same class Shapes.

Hybrid Inheritance

Hybrid inheritance is a combination of Single and Multiple inheritance.

   class A
   {
       //Some Code
   }
   class B 
   {
       //Some Code
   }
   class C: A
   {
       //Some Code
   }
   class D : B, C
   {
       //Some Code
   }

As per above example, all the public and protected members of Class A are inherited into Class D, first via Class B and secondly via Class C. C# and Java doesn't support hybrid/Multiple inheritance