Let’s go through inheritance in C# β€” a key pillar of object-oriented programming (OOP).


πŸ“Œ 1. What is Inheritance?

Inheritance allows a class (child/derived class) to reuse fields, properties, and methods from another class (parent/base class).

  • Promotes code reuse

  • Establishes is-a relationships between classes

  • Derived classes can override or extend functionality of base classes


πŸ“Œ 2. Basic Syntax

class BaseClass
{
    // Base class members
}
 
class DerivedClass : BaseClass
{
    // Derived class members
}
  • The : symbol indicates inheritance

  • DerivedClass inherits all accessible members of BaseClass


πŸ“Œ 3. Example: Simple Inheritance

// Base class
public class Animal
{
    public string Name;
 
    public void Eat()
    {
        Console.WriteLine($"{Name} is eating.");
    }
}
 
// Derived class
public class Dog : Animal
{
    public void Bark()
    {
        Console.WriteLine($"{Name} is barking.");
    }
}
 
// Usage
Dog dog = new Dog();
dog.Name = "Buddy";
dog.Eat();   // Inherited from Animal
dog.Bark();  // Defined in Dog
  • Dog inherits Name and Eat() from Animal

  • Can add new behavior (Bark())


πŸ“Œ 4. Access Modifiers and Inheritance

  • public members β†’ accessible in derived class

  • protected members β†’ accessible in derived class, but not outside

  • private members β†’ not accessible in derived class

public class Animal
{
    protected string species;  // Accessible in derived class
    private int age;           // Not accessible in derived class
}

πŸ“Œ 5. Method Overriding with virtual and override

  • virtual in base class β†’ allows method to be overridden

  • override in derived class β†’ provides new behavior

public class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("Some generic sound");
    }
}
 
public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("Bark!");
    }
}
 
// Usage
Animal a = new Dog();
a.MakeSound(); // Bark!

πŸ“Œ 6. base Keyword

  • Access base class members from derived class
public class Dog : Animal
{
    public void ShowName()
    {
        Console.WriteLine(base.Name); // Access Name from base class
    }
}

πŸ“Œ 7. Summary Table

ConceptDescription
Base classClass whose members are inherited
Derived classClass that inherits members from base class
InheritanceMechanism to reuse code & extend behavior
virtualAllows method in base class to be overridden
overrideReplaces base class implementation in derived class
baseAccess base class members in derived class

βœ… Tip:

  • Use inheritance to avoid code duplication

  • Combine with polymorphism for flexible designs

  • Prefer protected for members you want subclasses to access safely