Abstrakte Klasse vs. Vererbung
Abstrakte Klasse und Vererbung sind zwei wichtige objektorientierte Konzepte, die in vielen objektorientierten Programmiersprachen wie Java zu finden sind. Die abstrakte Klasse kann als abstrakte Version einer regulären (konkreten) Klasse betrachtet werden, während die Vererbung es neuen Klassen ermöglicht, andere Klassen zu erweitern. Abstrakte Klasse ist eine Klasse, die nicht initialisiert, aber erweitert werden kann. Abstrakte Klassen sind also nur sinnvoll, wenn die Programmiersprache Vererbung unterstützt. In Java werden abstrakte Klassen mit dem Schlüsselwort Abstract deklariert, während das Schlüsselwort Extends zum Erben von einer (Super-) Klasse verwendet wird.
Was ist eine abstrakte Klasse?
Abstrakte Klassen, auch als abstrakte Basisklassen (ABC) bekannt, können normalerweise nicht instanziiert werden (eine Instanz dieser Klasse kann nicht erstellt werden). Abstrakte Klassen sind also nur sinnvoll, wenn die Programmiersprache Vererbung unterstützt (Fähigkeit, Unterklassen durch Erweitern einer Klasse zu erstellen). Abstrakte Klassen stellen normalerweise ein abstraktes Konzept oder eine Entität mit teilweiser oder keiner Implementierung dar. Daher fungieren abstrakte Klassen als übergeordnete Klassen, von denen untergeordnete Klassen abgeleitet werden, sodass die untergeordnete Klasse die unvollständigen Merkmale der übergeordneten Klasse teilt und Funktionen hinzugefügt werden können, um sie zu vervollständigen.
Abstrakte Klassen können abstrakte Methoden enth alten. Unterklassen, die eine abstrakte Klasse erweitern, können diese (geerbten) abstrakten Methoden implementieren. Wenn die untergeordnete Klasse alle diese abstrakten Methoden implementiert, ist sie eine konkrete Klasse. Wenn dies jedoch nicht der Fall ist, wird die untergeordnete Klasse ebenfalls zu einer abstrakten Klasse. All dies bedeutet, dass der Programmierer, wenn er eine Klasse als Abstract nominiert, damit sagt, dass die Klasse unvollständig ist und Elemente enthält, die von den erbenden Unterklassen vervollständigt werden müssen. Dies ist eine schöne Möglichkeit, einen Vertrag zwischen zwei Programmierern zu erstellen, was Aufgaben in der Softwareentwicklung vereinfacht. Der Programmierer, der zu erbenden Code schreibt, muss sich genau an die Methodendefinitionen h alten (kann aber natürlich seine eigene Implementierung haben).
Was ist Vererbung?
Vererbung ist ein objektorientiertes Konzept, das es neuen Klassen ermöglicht, andere Klassen zu erweitern. Das Schlüsselwort Extends wird verwendet, um das Konzept der Vererbung in der Programmiersprache Java zu implementieren. Die Vererbung ermöglicht im Wesentlichen die Wiederverwendung von Code, indem sie die Erweiterung von Eigenschaften und Verh alten einer vorhandenen Klasse durch eine neu definierte Klasse ermöglicht. Wenn eine neue Unterklasse (oder abgeleitete Klasse) eine Oberklasse (oder Elternklasse) erweitert, erbt diese Unterklasse alle Attribute und Methoden der Oberklasse. Die Unterklasse kann optional das von der Elternklasse geerbte Verh alten außer Kraft setzen (Methoden neue oder erweiterte Funktionalität bereitstellen). Typischerweise kann eine Unterklasse nicht mehrere Oberklassen erweitern (z. B. in Java). Daher können Sie Erweiterungen nicht für die Mehrfachvererbung verwenden. Um Mehrfachvererbung zu haben, müssen Sie Schnittstellen verwenden.
Was ist der Unterschied zwischen abstrakter Klasse und Vererbung?
Abstrakte Klassen repräsentieren normalerweise ein abstraktes Konzept oder eine Entität mit teilweiser oder keiner Implementierung. Durch Vererbung können neue Klassen andere Klassen erweitern. Da abstrakte Klassen nicht instanziiert werden können, müssen Sie das Konzept der Vererbung verwenden, um abstrakte Klassen zu verwenden. Andernfalls hat eine Abstract-Klasse keinen Nutzen. Abstrakte Klassen können abstrakte Methoden enth alten, und wenn die Klasse erweitert wird, werden alle Methoden (abstrakt und konkret) geerbt. Die geerbte Klasse kann beliebige oder alle Methoden implementieren. Wenn nicht alle Abstract-Methoden implementiert sind, wird diese Klasse ebenfalls zu einer Abstract-Klasse. Eine Klasse kann nicht von mehr als einer abstrakten Klasse erben (dies ist keine Eigenschaft von abstrakten Klassen per se, sondern eher eine Beschränkung der Vererbung).
Verwandte Beiträge:
Unterschied zwischen abstrakter Klasse und konkreter Klasse
Unterschied zwischen virtuell und abstrakt
Unterschied zwischen abstrakter Klasse und Schnittstelle
Unterschied zwischen Implements und Extends
Unterschied zwischen Graph und Baum
Filed Under: Programmierung Markiert mit: ABC, Abstract, Abstrakte Basisklassen, Abstrakte Klasse, Abstrakte Klassen, Abstraktes Schlüsselwort, Abstrakte Methoden, Konkrete Klasse, Erweitertes Schlüsselwort, Vererbung, Vererbungsklasse, Vererbte Klasse, Java, Mehrfachvererbung, objektorientierte Konzepte, reguläre Klasse, Superklasse
Über den Autor: Indika
Indika, BSc. Eng, MSECE Computer Engineering, PhD. Informatik, ist Assistant Professor und hat Forschungsinteressen in den Bereichen Bioinformatik, Computational Biology und Biomedical Natural Language Processing.
Kommentare
-
Jason sagt
30. August 2017 um 13:25 Uhr
Danke, dass du den Unterschied erklärt hast. Alle meine Fragen wurden damit gelöst.
Antwort
-
Aus sagt
10. Mai 2019 um 15:04 Uhr
beste Antwort im Internet, Lehrer erklärt keinen Scheiß und macht keinen Sinn, Monoton mf. So erklären Sie Konzepte.
Antwort
Hinterlasse eine Antwort Antworten abbrechen
Ihre E-Mail-Adresse wird nicht veröffentlicht. Pflichtfelder sind mitgekennzeichnet
Kommentar
Name
Website