Loading lessons...
C# Inheritance
C# Inheritance
Inheritance lets one class (the derived class) reuse fields and methods from another class (the base class).
The colon syntax
class Vehicle // base class
{
public string brand = "Ford";
public void honk()
{
Console.WriteLine("Tuut, tuut!");
}
}
class Car : Vehicle // derived class
{
public string modelName = "Mustang";
}
Car gets everything Vehicle has, plus its own members:
static void Main(string[] args)
{
Car myCar = new Car();
myCar.honk();
Console.WriteLine(myCar.brand + " " + myCar.modelName);
}
Output:
Tuut, tuut!
Ford Mustang
Why inheritance?
- Reuse code - don't rewrite what a base class already does.
- Extend behavior - a Car is a Vehicle with extras.
- Create is-a relationships: a Car is a Vehicle.
Sealed classes
A sealed class cannot be inherited:
sealed class Vehicle { }
class Car : Vehicle { } // error: Vehicle is sealed
The base keyword
Inside a derived class, base refers to the base class. It's used to call base constructors and members.
Note on multiple inheritance
C# classes support single inheritance - one class can extend only one base class. (Interfaces provide a way around this, coming soon.)
TL;DR
class Derived : Basecreates inheritance.- The derived class gets all base members.
- Inheritance creates is-a relationships.
sealedprevents inheritance.