Klasse
Eintrag zuletzt aktualisiert am: 28.06.2017
Es gibt Objekte (z. B. Datei, Benutzer), von denen nicht nur ein, sondern mehrere oder sogar beliebig viele Exemplare existieren können. Mit dem Begriff Klasse fasst man alle gleichartigen (gleich aufgebauten) Objekte zusammen. Ein Beispiel: In der Klasse "Datei" gibt es die Objekte "abc.doc", "xyz.txt" und "rst.xls". Ein Objekt bezeichnet man auch als Instanz einer Klasse. Eine Klasse definiert, welche Mitglieder (
Attribute,
Methoden und Ereignisse) jede Instanz oder jedes Exemplar der Klasse haben soll. Und eine Klasse enthält auch den Programmcode, der ausgeführt werden soll, wenn eine
Methode aufgerufen wird. Dieser Programmcode ist in allen Instanzen einer Klasse gleich (und wird daher auch nur einmal im Speicher abgelegt). Eine Klasse ist eine Schablone zur Erzeugung von Objekten. Synonym zur Klasse wird oft auch der Begriff
Objekttyp verwendet.
Klassen in COM
Eine
COM-Klasse umfasst eine oder mehrere
COM-Schnittstellen.
Klassen in .NET
Ein Typ ist einer
Programmiersprache eine Forschrift, die eine
Variable erfüllen muss. Es gibt
Programmiersprachen, die zwischen elementaren Datentypen (z.B. Ganzzahlen, gebrochene Zahlen, Datumsangaben) und
Objekttypen (alias Klassen) unterscheiden. In .NET und den zugehörigen
Programmiersprachen gibt es diese Unterscheidung nicht, d.h. jede Typ ist ein
Objekttyp/Klasse, auch für elementare Datentypen.
Eine .NET-Klasse umfasst
Attribute,
Methoden, Ereignisse, keinen, einen oder mehrere Konstruktoren, höchstens einen Destruktor, Konstanten und Aufzählungstypen. Eine Klasse ist im
.NET Framework ein
Referenz-Typ.
Eine .NET-Klasse kann keine, eine oder mehrere explizite Schnittstellen besitzen. Wenn eine Klasse deklariert, dass sie eine Schnittstelle besitzt, dann muss die Klasse alle Mitglieder dieser Schnittstelle implementieren. Da die Deklaration von Schnittstellen optional ist, kann also eine .NET-Klasse im Gegensatz zu einer
COM-Klasse auch direkt Mitglieder besitzen, die zu keiner Schnittstelle gehören. Gemäß CLi-Richtlinien kann eine Klasse auch mehrere gleichnamige Mitglieder in verschiedenen Schnittstellen bzw. in der Klasse selbst besitzen. In der Klasse selbst und in jeder Schnittstelle darf ein Mitgliedsname aber nur einmal vorkommen. Eine Unterscheidung zwischen den Mitgliedern findet durch einen expliziten Zugriff auf die Schnittstellen statt.
Schnittstellen können in der
CLI auch eine Vererbungshierarchie bilden. Dabei ist
Mehrfachvererbung möglich und jede Schnittstelle kann auch in mehreren Vererbungsbäumen vorkommen.