C# Inheritance

Inheritance (Derived and Base Class)

In C#, it is possible to inherit fields and methods from one class to another. We group the "inheritance concept" into two categories:

  • Derived Class (child) - the class that inherits from another class
  • Base Class (parent) - the class being inherited from

To inherit from a class, use the : symbol.

In the example below, the Car class (child) inherits the fields and methods from the Vehicle class (parent):


class Vehicle  // base class (parent) 
  public string brand = "Ford";  // Vehicle field
  public void honk()             // Vehicle method 
    Console.WriteLine("Tuut, tuut!");

class Car : Vehicle  // derived class (child)
  public string modelName = "Mustang";  // Car field

class Program
  static void Main(string[] args)
    // Create a myCar object
    Car myCar = new Car();

    // Call the honk() method (From the Vehicle class) on the myCar object

    // Display the value of the brand field (from the Vehicle class) and the value of the modelName from the Car class
    Console.WriteLine(myCar.brand + " " + myCar.modelName);

Run example »

Why And When To Use "Inheritance"?

- It is useful for code reusability: reuse fields and methods of an existing class when you create a new class.

Tip: Also take a look at the next chapter, Polymorphism, which uses inherited methods to perform different tasks.

The sealed Keyword

If you don't want other classes to inherit from a class, use the sealed keyword:

If you try to access a sealed class, C# will generate an error:

sealed class Vehicle {

class Car : Vehicle {

The error message will be something like this:

'Car': cannot derive from sealed type 'Vehicle'