Unterschied zwischen abstrakter Klasse und Vererbung

Unterschied zwischen abstrakter Klasse und Vererbung

Zusammenfassung Klasse gegen 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 Erbschaft neue Klassen ermöglicht, andere Klassen zu erweitern. Abstrakte Klasse ist eine Klasse, die nicht initialisiert werden kann, aber erweitert werden kann. Abstrakte Klassen sind also nur sinnvoll, wenn die Programmiersprache die Vererbung unterstützt. In Java werden abstrakte Klassen mit dem abstrakten Schlüsselwort deklariert, während erweitertes Schlüsselwort zum Erben einer (Super-) Klasse verwendet wird.

Was ist abstrakte Klasse?

Typischerweise können abstrakte Klassen, auch als abstrakte Basisklassen (ABC) bekannt, nicht instanziiert werden (eine Instanz dieser Klasse kann nicht erstellt werden). Abstrakte Klassen sind also nur sinnvoll, wenn die Programmiersprache die Vererbung unterstützt (Fähigkeit, Unterklassen aus der Erweiterung einer Klasse zu erstellen). Abstrakte Klassen repräsentieren normalerweise ein abstraktes Konzept oder eine Entität mit partieller oder nicht implementierter Implementierung. Daher fungieren abstrakte Klassen als übergeordnete Klassen, aus denen Kinderklassen abgeleitet sind, damit die untergeordnete Klasse die unvollständigen Merkmale der übergeordneten Klasse und Funktionen hinzugefügt werden kann, um sie zu vervollständigen.

Abstrakte Klassen können abstrakte Methoden enthalten. Unterklassen, die eine abstrakte Klasse erweitern, können diese (ererbten) abstrakten Methoden implementieren. Wenn die untergeordnete Klasse alle solchen abstrakten Methoden implementiert, handelt es sich um eine konkrete Klasse. Aber wenn dies nicht der Fall ist, wird die Kinderklasse auch zu einer abstrakten Klasse. All dies bedeutet, dass die Klasse, wenn der Programmierer eine Klasse als Zusammenfassung nennt, unvollständig sein wird und Elemente haben, die durch die Erben -Unterklassen abgeschlossen werden müssen. Dies ist eine gute Möglichkeit, einen Vertrag zwischen zwei Programmierern zu erstellen, der Aufgaben in der Softwareentwicklung vereinfacht. Der Programmierer, der Code zum Erben schreibt, muss genau den Methodendefinitionen folgen (kann natürlich ihre eigene Implementierung haben).

Was ist Vererbung?

Die Vererbung ist ein objektorientiertes Konzept, mit dem neue Klassen andere Klassen verlängern können. Erweitertes Schlüsselwort wird verwendet, um das Vererbungskonzept in der Java -Programmiersprache zu implementieren. Die Vererbung liefert im Wesentlichen eine Wiederverwendung von Code, indem erweiterte Eigenschaften und Verhalten einer vorhandenen Klasse durch eine neu definierte Klasse ermöglicht werden. Wenn eine neue Unterklasse (oder abgeleitete Klasse) eine Superklasse (oder eine übergeordnete Klasse) erweitert, die die Unterklasse alle Attribute und Methoden der Superklasse erbt. Die Unterklasse kann das Verhalten optional überschreiben (für Methoden neue oder erweiterte Funktionen liefern), die von der übergeordneten Klasse geerbt wurden. Normalerweise kann eine Unterklasse mehrere Superklassen nicht erweitern (e.G. in Java). Daher können Sie sich nicht für mehrere Vererbung erstrecken. Um mehrere Erbschaft 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 ein Unternehmen mit teilweise oder ohne Implementierung. Die Erbschaft ermöglicht es neuen Klassen, andere Klassen zu verlängern. Da abstrakte Klassen nicht instanziiert werden können, müssen Sie das Vererbungskonzept verwenden, um abstrakte Klassen zu verwenden. Ansonsten hat eine abstrakte Klasse keine Verwendung. Abstrakte Klassen können abstrakte Methoden enthalten und wenn die Klasse erweitert ist, werden alle Methoden (abstrakt und konkret) vererbt. Die ererbte Klasse kann alle oder alle Methoden implementieren. Wenn nicht alle abstrakten Methoden implementiert sind, wird diese Klasse auch zu einer abstrakten Klasse. Eine Klasse kann nicht von mehr als einer abstrakten Klasse erben (dies ist keine Qualität von abstrakten Klassen an sich, sondern eine Einschränkung der Vererbung).