Skip to content
AgileLogics
4 min read

Abstract Classes

Prerequisites: Polymorphism

abstract class Shape {
    public abstract double Area(); // no body — subclasses must implement it

    public void Describe() {
        Console.WriteLine($"Area: {Area()}");
    }
}

class Circle : Shape {
    private double _radius;

    public Circle(double radius) {
        _radius = radius;
    }

    public override double Area() => Math.PI * _radius * _radius;
}

Common mistakes

  • Trying new Shape() directly — an abstract class can't be instantiated, only extended.