Zum Hauptinhalt springen
Veröffentlicht am

Vererbung in C#

Teilen:

Einführung

Vererbung ist ein grundlegendes Konzept der objektorientierten Programmierung. In C# bietet sie eine effektive Möglichkeit, wiederverwendbare Klassen zu erstellen und zu organisieren. Durch Vererbung teilen Klassen Attribute und Verhaltensweisen, wodurch Redundanz reduziert und Modularität erhöht wird.

Warum Vererbung verwenden?

Vorteile

  • Modularität: Ermöglicht die Trennung von Funktionalitäten, die mehreren Klassen gemeinsam sind.
  • Code-Wiederverwendung: Abgeleitete Klassen erben Eigenschaften der Basisklasse.
  • Flexibilität: Erleichtert das Hinzufügen spezifischer Funktionalitäten in Unterklassen.

Mehrfachvererbung und Interfaces

In C# kann man nicht direkt von mehreren Klassen erben. Wir können jedoch mehrere Interfaces implementieren. Interfaces sind eine Möglichkeit, die Einschränkung der Mehrfachvererbung zu umgehen und einer Klasse mehrere Verhaltensweisen zu verleihen.

interface ILaufbar {
  void Laufen();
}

interface IEssbar {
  void Essen();
}

class Person : ILaufbar, IEssbar {
  public void Laufen() {
    Console.WriteLine("Ich laufe.");
  }

  public void Essen() {
    Console.WriteLine("Ich esse.");
  }
}

Abstrakte Klassen

Eine abstrakte Klasse ist eine Klasse, die nicht direkt instanziiert werden kann. Sie dient als Basis für andere Klassen. Klassen, die von einer abstrakten Klasse abgeleitet werden, müssen alle abstrakten Methoden implementieren.

abstract class Tier {
    public abstract void LautGeben();

    public void Schlafen() {
        Console.WriteLine("Das Tier schläft.");
    }
}

class Hund : Tier {
    public override void LautGeben() {
        Console.WriteLine("Der Hund bellt.");
    }
}

Empfohlene Praktiken

  1. Tiefe Vererbung vermeiden: Viele Vererbungsebenen können den Code unübersichtlich machen.
  2. Komposition der Vererbung vorziehen: Wenn die Beziehung nicht streng "ist ein" ist, solltest du Komposition in Betracht ziehen.
  3. Abstrakte Klassen und Interfaces bedacht einsetzen: Beide bieten Flexibilität, haben aber unterschiedliche Auswirkungen.

Fazit

Vererbung in C# ist ein mächtiges Werkzeug, das jedoch mit Bedacht eingesetzt werden sollte. Die grundlegenden Konzepte und empfohlenen Praktiken zu verstehen ist entscheidend, um die Vorteile der Vererbung zu maximieren, ohne in typische Fallen zu tappen.

Happy coding!