Skip to content

abstract classes and methods

Context: An abstract class cannot be instantiated. It may contain abstract methods (no body) that must be implemented by non‑abstract derived classes.

public abstract class Vehicle
{
public abstract void StartEngine(); // no body
public void Stop() => Console.WriteLine("Stopped");
}
public class Car : Vehicle
{
public override void StartEngine()
{
Console.WriteLine("Car engine started");
}
}
Vehicle v = new Car(); // OK
v.StartEngine(); // calls Car's implementation
// Vehicle v2 = new Vehicle(); // error: abstract
  • Abstract members can only appear in abstract classes.
  • A class inheriting an abstract class must implement all abstract members (unless it is also abstract).
  • Abstract classes can have constructors, fields, and concrete methods.