Abstraktion in der Programmierung bezieht sich darauf, unnötige, wenn auch sehr wichtige Informationen zu verbergen und nur bestimmte Schlüssel- oder erforderliche Informationen für den Benutzer sichtbar zu machen. Dies wird durch die Verwendung abstrakter Klassen ermöglicht.
Die abstrakte Klasse in C# ist im Wesentlichen eine Klasse, die keine Objekterstellung zulässt. „Abstract“ ist ein Schlüsselwort oder ein Modifikator, der bewirkt, dass diese bestimmte Klasse oder Methode abstrakt oder eingeschränkt ist. Auf eine abstrakte Klasse kann nur durch Vererbung von einer anderen Klasse zugegriffen werden.
Key Take Away
- Abstrakte Klassen sind unvollständige Klassen, die nicht instanziiert werden können, aber als Basis dienen, von der andere erben können.
- Sie enthalten mindestens eine rein virtuelle Funktion, was bedeutet, dass sie keine Implementierung hat und von einer abgeleiteten Klasse definiert werden muss.
- Abstrakte Klassen können Member-Variablen und Member-Funktionen mit Implementierung haben, auf sie kann jedoch nicht über Objekte der abstrakten Klasse zugegriffen werden.
Eigenschaften und Komponenten der Abstract-Klasse in C#
Bestimmte Faktoren müssen vorhanden sein, damit eine abstrakte Klasse initiiert oder darauf zugegriffen werden kann. Sie wurden wie folgt aufgelistet.
- Eine abstrakte Klasse erstellt eine Basisklasse, auf die gemeinsam von mehreren abgeleiteten Klassen zugegriffen wird. Programmierer müssen eine abgeleitete Klasse erstellen, um eine abstrakte Klasse zu verwenden oder zu implementieren.
- Die abstrakte Klasse muss also von Unterklassen geerbt werden, die sogar die Funktion überschreiben können.
- Jede abstrakte Klasse benötigt mindestens eine abstrakte Methode.
Beispiel einer abstrakten Klasse in C#
Da der Mechanismus kompliziert und nur für diejenigen verständlich ist, die mit der Programmierung vertraut sind Sprache, ist es besser, mit einem einfachen Beispiel zu beginnen, um das Konzept zu erklären.
Angenommen, es existiert eine Klasse „Baum“ mit einer vorhandenen entworfenen Methode, die als „Typ“ bekannt ist. Nichts anderes wird definiert, und es werden keine weiteren besonderen Informationen bereitgestellt – man kennt weder die Baumart noch die möglichen Typen.
Wenn ein bestimmtes Beispiel eines Baums verfügbar ist, wird durch die Vererbung der Basisklasse Tree eine separate Klasse erstellt. Die Idee ist, dass die neue Klasse, sagen wir Pine or Eiche, kann das Konstrukt oder die Definition der Basisklasse, also Tree, nicht ändern. Sie muss ihre von der Klasse Tree abgeleitete Klasse erstellen und eine andere von der Basis geerbte Methode definieren.
Vorteile der abstrakten Klasse in C#
- Während Unterklassen wählen können, ob sie eine abstrakte Klasse entweder implementieren oder überschreiben möchten, gibt es bestimmte Änderungen gemacht werden können, die eine bestimmte zu implementierende Funktion erfordern.
- Somit besteht beim Entwurf einer abstrakten Klasse ein hohes Maß an Flexibilität, welche Methoden unbedingt implementiert werden müssen.
- Der Programmierer kann wählen, wie viele abstrakte Methoden er in einer abstrakten Klasse haben möchte. Es ist auch möglich, den Code ohne abstrakte Methoden zu schreiben.
- Eine abstrakte Klasse muss nur einmal definiert werden und kann so oft wie nötig aufgerufen oder abgeleitet werden.
- Eine abstrakte Klasse ist sehr nützlich, wenn es eine Reihe von Klassen gibt, die einen gewissen Grad an Gemeinsamkeit aufweisen, sich aber in ihrer Implementierung von der abstrakten Klasse unterscheiden.
Nachteile der abstrakten Klasse in C#
- Eine abstrakte Klasse kann nur dann zur Klassenhierarchie hinzugefügt werden, wenn keine abstrakten Klassen existieren.
- Objekte jeder abstrakten Klasse können nur referenziert, niemals erstellt werden.
- Obwohl abstrakte Klassen nicht instanziiert werden können, erlaubt es keine statischen Variablen oder Methoden.
- https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
- https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
Letzte Aktualisierung: 11. Juni 2023
Sandeep Bhandari hat einen Bachelor of Engineering in Computers von der Thapar University (2006). Er verfügt über 20 Jahre Erfahrung im Technologiebereich. Er interessiert sich sehr für verschiedene technische Bereiche, darunter Datenbanksysteme, Computernetzwerke und Programmierung. Sie können mehr über ihn auf seinem lesen Bio-Seite.
Ich fand diesen Beitrag in seiner Aufmachung leicht ironisch. Es macht die Erklärung jedoch recht interessant.
Dieser Artikel bietet eine sehr informative Erklärung der Abstraktion in der Programmierung. Ich finde es wirklich faszinierend.
Ich stimme zu, Cooper. Dies ist ein sehr informativer Artikel.
Das Beispiel des Baumes zur Erklärung der abstrakten Klasse ist einfach genial. Sehr gut gemacht vom Autor.
Ja, Helena. Ein perfektes Beispiel zur Veranschaulichung des Konzepts.
Ich kann dir nur zustimmen, Helena.
Der Artikel beschreibt gut die Vor- und Nachteile. Eine umfassende Referenz für alle, die mehr über abstrakte Klassen in C# erfahren möchten.
Ich stimme dir vollkommen zu, Ograham. Es ist ein informatives Stück.
Schön zusammengefasst, Ograham. Eine großartige Ressource für Programmierer.
Dieser Artikel beleuchtet nicht nur die Vorteile, sondern geht auch auf die Nachteile einer abstrakten Klasse in C# ein. Eine wirklich gründliche Analyse!
Auf jeden Fall, Mjones. Es ist eine ausgewogene Sicht auf das Thema.
Der komische Ton, mit dem das Thema erklärt wird, sorgt für eine erfrischende Perspektive. Ein großes Lob an den Autor!
Ich kann dir nur zustimmen, Dean89.
Auf jeden Fall, Dean89. Eine tolle Mischung aus Humor und Information.
Der argumentative Ansatz dieses Artikels ist wirklich bemerkenswert. Es bietet eine ausgewogene Sicht auf das Konzept.
Ich stimme zu, Yasmine. Die gründliche Analyse ist lobenswert.
Ich finde die Flexibilität beim Entwerfen einer abstrakten Klasse sehr faszinierend. In diesem Artikel werden sowohl die Vor- als auch die Nachteile klar und verständlich dargestellt.
Ich stimme dir vollkommen zu, Richards. Es ist eine tolle Lektüre.
Ich schätze die detaillierte Aufschlüsselung der Eigenschaften und Komponenten der Abstract-Klasse in C# sehr. Großartiger Artikel!
Einverstanden, Sfox. Dies sind wichtige Informationen für jeden, der C# lernt.
Genau meine Meinung, Sfox. Eine hervorragende Erklärung.
Ich denke, die hier genannten Vorteile zeigen wirklich den Nutzen einer abstrakten Klasse. Tolle Einblicke gegeben.
Auf jeden Fall, Williams. Die Vorteile sind gut dargelegt.