Basisklasse
Eine Basisklasse[1][2][3] – aus dem englischen base class entlehnt, zudem teilweise übersetzt Grundklasse – ist, in der objektorientierten Programmierung, eine Klasse, die ihre Eigenschaften (Attribute) und Methoden an abgeleitete Klassen vererbt und selbst im Allgemeinen keine Elternklassen besitzt. Somit ist eine Basisklasse aus einer anderen Sichtweise heraus auch eine Superklasse[1][4][5] (aus dem englischen superclass) oder auch eine Oberklasse[6][4][5] sowie übergeordnete Klasse[3] oder auch Elternklasse[5] (aus dem englischen parent class) von Klassen, die von dieser Basisklasse abgeleitet werden.
Insbesondere die Bezeichnung Basisklasse soll i. d. R. verdeutlichen, dass sie der Ausgangspunkt (oder auch die Grundlage) für weitere von ihr abgeleitete Klassen ist und gleichzeitig keine eigenen Elternklassen hat, was dann im Umkehrschluss bedeutet, dass die Basisklasse stets die höchste definierte Klasse in ihrer Klassenhierarchie ist (z. B. eine Klasse String). Es kann aber auch mehr als eine Basisklasse geben, welche dann unabhängig voneinander ein Netz von Unterklassen ergeben (z. B. neben der Klasse String auch die Basisklasse Fließkommazahl Float). So eine systematisch angelegte Sammlung wird auch Klassenbibliothek genannt.
Eine Basisklasse kann auch als abstrakte Basisklasse deklariert sein (englisch abstract base class, kurz ABC[2]) und in dem Fall die direkte Instanziierung von abstrakten Klassen verbieten. Sie dient dann lediglich der Zusammenfassung, der Abstraktion von Attributen und Methoden der von ihr abgeleiteten Klassen.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b Bjarne Stroustrup: Die C++-Programmiersprache. 2. Auflage. Addison-Wesley, Bonn 1992, ISBN 3-89319-386-3, S. 27 (englisch: The C++ programming language, second edition, reprinted with corrections. Übersetzt von Elke Kasimir).
- ↑ a b Scott Meyers: Effektiv C++ programmieren: 50 Möglichkeiten zur Verbesserung Ihrer Programme. 2. Auflage. Addison-Wesley, Bonn 1995, ISBN 3-89319-816-4, S. 158 (Originaltitel: Effective C++ – 50 Specific Ways to Improve Your Programs and Design. Übersetzt von Elke Kasimir).
- ↑ a b Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener: Objektorientiertes Software-Design. Hanser, München 1993, ISBN 3-446-16319-0, S. 26.
- ↑ a b Bernd Oestereich: Objektorientierte Softwareentwicklung mit der Unified Modeling Language. 3. Auflage. Oldenbourg, München 1997, ISBN 3-486-24319-5, S. 274.
- ↑ a b c Christian Ullenboom: Java ist auch eine Insel. Galileo Computing, 2009, ISBN 978-3-8362-1371-4, Kapitel 6.8.1 Vererbung in Java.
- ↑ James Rumbaugh: Objektorientiertes Modellieren und Entwerfen. Hanser, München 1993, ISBN 3-446-17520-2, S. 48.