C# Inheritance Explained: OOP Concept with Examples
Inheritance in C# is an Object-Oriented Programming (OOP) concept that allows one class to inherit properties and methods from another class. It helps in code reuse and establishes a parent-child relationship between classes.
The class that is inherited is called the base class (parent class), and the class that inherits is called the derived class (child class).
1. What is Inheritance in C#?
Inheritance allows a class to:
• Reuse existing code
• Extend functionality
• Create a hierarchy between classes
2. Syntax of Inheritance
class BaseClass
{
// members
}
class DerivedClass : BaseClass
{
// additional members
}
The : symbol is used to inherit from a base class.
3. Simple Example of Inheritance
using System;
class Animal
{
public void Eat()
{
Console.WriteLine("Animal is eating");
}
}
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Dog is barking");
}
}
class Program
{
static void Main()
{
Dog myDog = new Dog();
myDog.Eat(); // inherited method
myDog.Bark(); // own method
}
}
Output:
Animal is eating
Dog is barking
4. Types of Inheritance in C#
C# supports several types of inheritance:
| Type | Description |
|---|---|
| Single Inheritance | One class inherits from one base class |
| Multilevel Inheritance | A class inherits from a derived class (chain) |
| Hierarchical Inheritance | Multiple classes inherit from one base class |
| Multiple Inheritance (via interfaces) | C# supports multiple inheritance only through interfaces |
5. Multilevel Inheritance Example
class Animal
{
public void Eat()
{
Console.WriteLine("Eating...");
}
}
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Barking...");
}
}
class Puppy : Dog
{
public void Weep()
{
Console.WriteLine("Weeping...");
}
}
6. Why Use Inheritance?
Advantages:
• Code reusability
• Reduces redundancy
• Easier maintenance
• Logical class hierarchy
• Extensible design
7. Real-World Example
Think of inheritance like a family structure:
| OOP Concept | Real-World Example | Explanation |
|---|---|---|
| Base Class | Animal | General category that defines common behavior for all animals |
| Derived Class | Dog | Inherits common animal behavior and adds specific features like barking |
| Sub Derived Class | Puppy | Further specialization of Dog with additional behavior like weeping |
| Relationship | Family Tree | Child inherits traits from parent and adds its own unique features |
A puppy is a dog, and a dog is an animal.
8. Method Overriding (Important Concept)
Derived classes can change base class behavior using override.
class Animal
{
public virtual void Speak()
{
Console.WriteLine("Animal sound");
}
}
class Dog : Animal
{
public override void Speak()
{
Console.WriteLine("Dog barks");
}
}
9. Common Mistakes
• Forgetting inheritance syntax :
• Trying multiple inheritance with classes
• Not using virtual and override correctly
• Creating unnecessary deep inheritance chains
10. Best Practices
• Keep inheritance hierarchy simple
• Use inheritance only for “is-a” relationships
• Prefer composition when possible
• Use interfaces for flexibility
• Avoid deep inheritance chains