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):
Example
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
myCar.honk();
// 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);
}
}
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'