Abstrakte Klassen

Abstrakte Klassen

Eine abstrakte Klasse erkennt man dadurch, dass der abstract-Modifizierer vor der Klasse steht. Der Modifizierer kann auch für Methoden, Eigenschaften, Ereignisse und Indexer verwendet werden.

abstract class Figur
{
protected string name;
public string Name
{
get { return name; }
set { name = value; }
}

public abstract void WasBinIch(); // abstrakte methode
public abstract double Volumen { get; } // abstrakte property
}

Wenn eine Klasse abstrakt ist dient sie nur als Basisklasse für andere Klassen, die von dieser erben.

class Kugel : Figur
{
private double radius;
public override void WasBinIch()
{
Console.WriteLine("Ich bin eine Kugel");
}
public override double Volumen
{
get { return (4 * radius * radius * radius * Math.PI) / 3; }
}
}

Jede Eigenschaft, Methode, etc. muss in den abgeleiteten Klassen vorhanden und überschrieben sein, wenn sie instanziiert werden sollen. Das funktioniert mit dem Schlüsselwort „override“. Einfach erklärt sind abstrakte Klassen also ein Grundgerüst für mehrere Klassen, und enthalten die Eigenschaften etc. die in allen weiteren Klassen auch vorhanden sein sollten.