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 ofBaseClass
π 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
inheritsName
andEat()
fromAnimal
-
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
Concept | Description |
---|---|
Base class | Class whose members are inherited |
Derived class | Class that inherits members from base class |
Inheritance | Mechanism to reuse code & extend behavior |
virtual | Allows method in base class to be overridden |
override | Replaces base class implementation in derived class |
base | Access 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