Was ist eine Basisklasse?
Eine Basisklasse, auch Superklasse genannt, ist ein Computerobjekt, das als Grundlage für eine oder mehrere abgeleitete Klassen dient. Jede vererbbare Computersprache kann eine Basisklasse erstellen. Abhängig von ihrem genauen Typ können Basisklassen möglicherweise selbst initialisiert werden, indem sie einem Objekt einen Anfangswert zuweisen, aber sie geben jeder Klasse, die von ihnen erbt, immer eine gemeinsame Funktionalität. Die Anzahl der abgeleiteten Klassen oder Unterklassen, über die Basisklassen verfügen können, ist nie begrenzt. Abhängig von der Computersprache kann die Anzahl der Basisklassen, über die eine abgeleitete Klasse verfügen kann, jedoch begrenzt sein. Sprachen, in denen eine abgeleitete Klasse nur eine Basis haben darf, erzwingen eine einzelne Vererbung, während Sprachen, in denen eine abgeleitete Klasse mehrere Basisklassen haben darf, mehrere Vererbungen verwenden.
Konkrete Basisklassen können einzeln initialisiert werden. Das heißt, ein Objekt vom Typ Basisklasse kann erstellt werden. Wenn eine Klasse Example eine Basis für eine abgeleitete Klasse Example2 ist, können sowohl ein Objekt vom Typ Example2 als auch ein Objekt vom Typ Example erstellt werden. Ein Objekt vom Typ Example kann nur erstellt werden, indem dieser Objekttyp explizit aufgerufen wird. Beim Erstellen eines Objekts vom Typ Example2 wird kein sekundäres Objekt vom Typ Example erstellt. In jedem Fall wird durch den erstellten Objekttyp nur eine Instanz von sich selbst erstellt.
Abstrakte Basisklassen können dagegen nicht alleine initialisiert werden, dh ein Objekt der Basisklasse kann nicht selbst erstellt werden. Wenn eine Klasse Example3 eine abstrakte Basis für eine abgeleitete Klasse Example4 ist, kann nur ein Objekt vom Typ Example4 erstellt werden. Obwohl der Typ Example4 Daten vom Typ Example3 enthält, führt der Versuch, ein Objekt nur vom Typ Example3 zu erstellen, zu einem Fehler. Diese Funktionalität kann manchmal nützlich sein, insbesondere wenn die Klasse Example3 private Daten enthält, die streng reguliert werden sollten.
Abhängig von der Sprache, in der es angezeigt wird, kann eine Basisklasse ein leicht unterschiedliches Verhalten und deutlich unterschiedliche Namen aufweisen. In Java® werden Basisklassen immer mit diesem Namen bezeichnet, während sie in C ++ je nach ihrer Struktur als virtuelle Klassen bezeichnet werden können. Die Unterschiede im Namen und in der Funktionalität sind zwar in Bezug auf die verwendeten Computersprachen signifikant, implizieren jedoch keine wesentlichen Unterschiede im Prinzip hinter den Klassen. Eine Basisklasse wird immer verwendet, um allgemeine Funktionen und Daten für ihre abgeleiteten Klassen zu kapseln, unabhängig von der Sprache.