Basisklasse – .net

Definition - Was bedeutet Basisklasse - .NET?

Eine Basisklasse im Kontext von C # ist eine Klasse, mit der andere Klassen erstellt oder abgeleitet werden. Von einer Basisklasse abgeleitete Klassen werden als untergeordnete Klassen, Unterklassen oder abgeleitete Klassen bezeichnet. Eine Basisklasse erbt nicht von einer anderen Klasse und wird als übergeordnetes Element einer abgeleiteten Klasse betrachtet.

Die Basisklasse bildet das Mittel, mit dem die Vererbung durch Ableitung erreicht wird. Eine von einer Basisklasse abgeleitete Klasse erbt sowohl Daten als auch Verhalten. Beispielsweise kann Fahrzeug eine Basisklasse sein, aus der die abgeleiteten Klassen Auto und Bus abgeleitet werden können. Sowohl Auto als auch Bus sind Fahrzeuge und repräsentieren jeweils ihre eigenen Spezialisierungen der Basisklasse.

Wie in Java, jedoch im Gegensatz zu C ++, unterstützt C # keine Mehrfachvererbungen von Klassen. C # unterscheidet sich von Java dadurch, dass ein virtueller Modifikator für alle virtuellen Mitglieder explizit markiert wird.

Eine Basisklasse wird auch als übergeordnete Klasse oder Oberklasse bezeichnet.

Technische.me erklärt die Basisklasse - .NET

Die Basisklasse hilft beim Erstellen einer speziellen Klasse, die den implizit aus der Basisklasse gewonnenen Code (mit Ausnahme von Konstruktoren und Destruktoren) wiederverwenden und die Funktionalität der Basisklasse erweitern kann, indem Mitglieder hinzugefügt oder überschrieben werden, die für die abgeleitete Klasse in der abgeleiteten Klasse relevant sind. In C # werden Ereignisse in der Basisklasse deklariert, die aus abgeleiteten Klassen ausgelöst werden können. Generische Klassen, die zum Einkapseln von Vorgängen verwendet werden, die nicht für einen bestimmten Datentyp spezifisch sind, dienen als Basisklassen und bieten generisches Verhalten, um Flexibilität und Wiederverwendbarkeit von Code zu erreichen.

Der Schlüssel die Eigenschaften der Basisklasse in C #:

  • Auf Basisklassenmitglieder (Konstruktor, Instanzmethode oder Instanzeigenschaftenzugriff) wird in abgeleiteten Klassen mit dem Schlüsselwort "base" zugegriffen.
  • Basisklassen werden automatisch vor abgeleiteten Klassen instanziiert.
  • Abgeleitete Klassen können während der Instanziierung mit der Basisklasse kommunizieren, indem sie den Basisklassenkonstruktor mit einer übereinstimmenden Parameterliste aufrufen.
  • Auf Mitglieder der Basisklasse kann von der abgeleiteten Klasse über eine explizite Umwandlung zugegriffen werden.
  • Da eine Basisklasse selbst eine abgeleitete Klasse sein kann, kann eine Klasse viele Basisklassen haben.
  • Mitglieder einer abgeleiteten Klasse können auf die öffentlichen, geschützten, internen und geschützten internen Mitglieder einer Basisklasse zugreifen.
  • Aufgrund der transitiven Natur der Vererbung erbt eine abgeleitete Klasse zwar nur eine Basisklasse, erbt jedoch die im übergeordneten Element der Basisklasse deklarierten Mitglieder.
  • Durch Deklarieren einer Methode in der Basisklasse als virtuell kann die abgeleitete Klasse diese Methode mit ihrer eigenen Implementierung überschreiben. Sowohl die überschriebene als auch die überschreibende Methode und Eigenschaft müssen dieselben Modifikatoren auf Zugriffsebene haben, z. B. virtuell, abstrakt oder überschrieben.
  • Wenn das Schlüsselwort "abstract" für eine Methode verwendet wird, sollte es in jeder nicht abstrakten Klasse überschrieben werden, die direkt von dieser Klasse erbt.
  • Abstrakte Basisklassen werden mit dem Schlüsselwort "abstract" in der Deklaration erstellt und verhindern die direkte Initiierung mit dem Schlüsselwort "new". Sie können nur von abgeleiteten Klassen verwendet werden, die abstrakte Methoden implementieren.
  • Eine Basisklasse kann verhindern, dass andere Klassen von ihr erben, indem alle Mitglieder als "versiegelt" deklariert werden.
  • Basisklassenmitglieder können in einer abgeleiteten Klasse ausgeblendet werden, indem das Schlüsselwort "new" verwendet wird, um anzuzeigen, dass das Mitglied nicht als Überschreibung des Basiselements gedacht ist. Wenn "neu" nicht verwendet wird, generiert der Compiler eine Warnung.

Obwohl die Basisklasse und die Schnittstelle austauschbar verwendet werden können, sind Klassen aus Versionssicht flexibler als Schnittstellen. Die Basisklasse wird in den meisten Fällen bevorzugt, mit Ausnahme der folgenden Szenarien:

  • Mehrere nicht verwandte Klassen bilden die Basis für die abgeleitete Klasse
  • Klassen haben bereits Basisklassen eingerichtet
  • Aggregation ist nicht geeignet oder praktisch

Diese Definition wurde im Kontext von C # geschrieben