Was ist eine abstrakte Klasse?
Bei der objektorientierten Programmierung stellt eine abstrakte Klasse eine Basisklasse bereit, mit der andere Klassen eine teilweise Implementierung und Schnittstelle erhalten können. Sie sind für sich unvollständig und werden in vielen Programmiersprachen wie Java, C ++ und C # in Vererbungssituationen verwendet. Aufgrund ihrer Verwendung als Basisklasse werden sie häufig als abstrakte Basisklasse (ABC) bezeichnet.
Die Datenabstraktion ist ein wesentlicher Bestandteil der objektorientierten Programmierung und beseitigt die unnötigen Details eines Objekts. Im Wesentlichen reduziert es das Objekt auf seine wichtigsten Erkennungsmerkmale. Diese grundlegenden Eigenschaften stellen einen Entwurf bereit, mit dem andere Objekte mit denselben Eigenschaften erstellt werden können, die sich nur in den Details unterscheiden.
Diese Blaupause ist als Klasse definiert. Klassen werden verwendet, um den Code zu kapseln, was den Programmierer erleichtert, da er auf bestimmte allgemeine Routinen verweisen kann, anstatt die Routinen immer wieder zu schreiben. Programmierer erstellen untergeordnete Objekte aus Klassen, und diese Objekte erben die Funktionen und Methoden in der übergeordneten Klasse.
Der Zweck einer abstrakten Klasse ist es, den Rahmen zu bilden, auf dem andere Klassen aufbauen. Objekte können nicht direkt aus einer abstrakten Klasse erstellt werden, sondern nur aus den Unterklassen, die zur abstrakten Klasse gehören. Damit ein Objekt von einer abstrakten Klasse erbt, muss eine Unterklasse erstellt werden. Objekte einer erstellten Unterklasse einer abstrakten Klasse erben Eigenschaften dieser abstrakten Klasse.
Jede Klasse modelliert ein Konzept, und abstrakte Klassen tendieren dazu, abstraktere Konzepte mit abstrakten Methoden zu modellieren. Abstrakte Methoden sind Unterprogramme innerhalb einer abstrakten Klasse, die keine Implementierung enthalten. Diese Unterprogramme werden als Platzhalter verwendet, die von einer Unterklasse oder einem Objekt überschrieben werden, das auf der Klasse basiert, die die abstrakte Methode selbst enthält.
Es gibt verschiedene Methoden zum Erstellen einer abstrakten Klasse. In C ++ wird beispielsweise eine abstrakte Klasse erstellt, indem eine Klasse mit mindestens einer abstrakten Methode oder einer rein virtuellen Funktion entwickelt wird. Java verwendet das Schlüsselwort "abstract", um eine abstrakte Klasse zu bezeichnen. Sie sind jedoch nicht in Programmiersprachen definiert, die die Idee der Vererbung nicht unterstützen.
Bei der Vererbung werden neue Objekte aus Klassen erstellt, wobei die neuen Objekte die in ihren übergeordneten Klassen definierten Funktionen und Methoden verwenden können, ohne dass das Programm neu gestartet werden muss. Deshalb ist eine abstrakte Klasse nützlich. Untergeordnete Klassen und untergeordnete Objekte dieser Unterklassen erben Eigenschaften von der übergeordneten abstrakten Klasse. Abstrakte Klassen werden als Superklassen betrachtet und stehen an der Spitze der Klassenstrukturhierarchie. Daher haben sie keinen Sinn in einer Sprache, die keine Vererbung unterstützt.