C# Inheritance & Overloading
C# Inheritance
In C#, inheritance allows us to create a new class from an existing class. It is a key feature of Object-Oriented Programming (OOP).
The class from which a new class is created is known as the base class (parent or superclass). And the new class is called derived class (child or subclass)
The derived class inherits the fields and methods of the base class. This helps with the code reusability in C#.
How to perform inheritance in C#?
In C#, we use the :
symbol to perform inheritance. For example,
Here, we are inheriting the derived class Dog
from the base class Animal
. The Dog
class can now access the fields and methods of Animal
class.
Example: C# Inheritance
Here, we are using labrador
(object of Dog) to access the name
and display()
of the Animal
class. This is possible because the derived class inherits all fields and methods of the base class.
Also, we have accessed the name
field inside the method of the Dog
class.
is-a relationship
In C#, inheritance is an is-a relationship
. We use inheritance only if there is an is-a
relationship between two classes. For example,
Dog is an Animal
Apple is a Fruit
Car is a Vehicle
We can derive Dog from Animal class. Similarly, Apple from Fruit class and Car from Vehicle class.
Protected Members in C# Inheritance
When we declare a field or method as protected
, it can only be accessed from the class and its derived classes.
Example: protected Members in Inheritance
In the above example, we have created a class named Animal
. The class includes a protected method eat()
.
We have derived the Dog
class from the Animal
class.
Notice the statement labrador.eat();
Types of inheritance
There are the following types of inheritance:
1.Single Inheritance
In single inheritance, a single derived class inherits from a single base class.
2.Multilevel Inheritance
In multilevel inheritance, a derived class inherits from a base and then the same derived class acts as a base class for another class.
3.Hierarchical Inheritance
In hierarchical inheritance, multiple derived classes inherit from a single base class.
4.Multiple Inheritance (not supported)
In multiple inheritance, a single derived class inherits from multiple base classes. C# doesn't support multiple inheritance. However, we can achieve multiple inheritance through interfaces.
5.Hybrid Inheritance
Hybrid inheritance is a combination of two or more types of inheritance. The combination of multilevel and hierarchical inheritance is an example of Hybrid inheritance.
Method Overriding in C# Inheritance
If the same method is present in both the base class and the derived class, the method in the derived class overrides the method in the base class. This is called method overriding in C#. For example,
In the above example, the eat()
method is present in both the base class and derived class.
When we call eat()
using the Dog
object labrador
,
labrador.eat();
the method inside Dog
is called. This is because the method inside Dog
overrides the same method inside Animal
.
Notice, we have used virtual
and override
with methods of the base class and derived class respectively. Here,
virtual
- allows the method to be overridden by the derived classoverride
- indicates the method is overriding the method from the base class
base
Keyword in C# Inheritance
base
Keyword in C# InheritanceIn the previous example, we saw that the method in the derived class overrides the method in the base class.
However, what if we want to call the method of the base class as well?
In that case, we use the base
keyword to call the method of the base class from the derived class.
In the above example, the eat()
method is present in both the base class Animal
and the derived class Dog
. Notice the statement,
base.eat();
Here, we have used the base
keyword to access the method of Animal
class from the Dog
class.
Last updated