Unterschied zwischen abstrakter Klasse und konkreter Klasse

Unterschied zwischen abstrakter Klasse und konkreter Klasse

Zusammenfassung Klasse gegen Betonklasse

Die meisten der beliebten modernen, objektorientierten Programmiersprachen wie Java und C# basieren auf Klassenbasis. Sie erreichen die objektorientierten Konzepte wie Kapselung, Vererbung und Polymorphismus durch die Verwendung von Klassen. Klassen sind eine abstrakte Darstellung realer Weltobjekte. Klassen können entweder konkret oder abstrakt sein, abhängig von der Implementierung ihrer Methodenfunktionalitäten. Eine konkrete Klasse implementiert alle ihre Methoden vollständig. Eine abstrakte Klasse kann als begrenzte Version einer regulären (konkreten) Klasse betrachtet werden, in der sie teilweise implementierte Methoden enthalten kann. Typischerweise werden Betonklassen als (gerechte) Klassen bezeichnet.

Was ist konkrete Klasse?

Die Standardklasse ist eine konkrete Klasse. Das Klassenschlüsselwort wird verwendet, um Klassen zu definieren (e.G. in Java). Und normalerweise werden sie einfach als Klassen bezeichnet (ohne Adjektivbeton). Konkrete Klassen zeigen die konzeptionelle Darstellung realer Weltobjekte. Klassen haben Eigenschaften, die als Attribute bezeichnet werden. Attribute werden als globale und Instanzvariablen implementiert. Methoden in den Klassen repräsentieren oder definieren das Verhalten dieser Klassen. Methoden und Attribute von Klassen werden als Mitglieder der Klasse bezeichnet. In der Regel wird die Kapselung erreicht, indem die Attribute privat gestaltet und öffentliche Methoden erstellt werden, die zum Zugriff auf diese Attribute verwendet werden können. Ein Objekt ist die Instanz einer Klasse. Erbheritz ermöglicht es dem Benutzer, Klassen (als Subklassen bezeichnete Unterrichtsstunden) aus anderen Klassen (als Superklassen bezeichnet) zu erweitern. Durch Polymorphismus kann der Programmierer ein Objekt einer Klasse anstelle eines Objekts seiner Superklasse ersetzen. In der Regel werden die in der Problemdefinition gefundenen Substantive direkt zu Klassen im Programm. Und ähnlich werden Verben zu Methoden. Öffentlich, privat und geschützt sind die typischen Zugangsmodifikatoren, die für Klassen verwendet werden.

Was ist abstrakte Klasse?

Abstrakte Klassen werden mit dem abstrakten Schlüsselwort (e) deklariert.G. in Java,). 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, wird sie zu einer konkreten 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 der Unterschied zwischen abstrakter Klasse und konkreter Klasse?

Abstrakte Klassen haben normalerweise teilweise oder keine Implementierung. Auf der anderen Seite haben Betonklassen immer eine vollständige Umsetzung seines Verhaltens. Im Gegensatz zu konkreten Klassen können abstrakte Klassen nicht instanziiert werden. Daher müssen abstrakte Klassen erweitert werden, um sie nützlich zu machen. Abstrakte Klassen können abstrakte Methoden enthalten, aber konkrete Klassen können es nicht können. Wenn eine abstrakte Klasse erweitert ist, werden alle Methoden (sowohl abstrakt als auch 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.