Verwendung von Schnittstellen und Klassenvererbungen

vom 18.07.2014, 08:47 Uhr

Schnittstellen bieten in Visual Basic viele Vorteile und die Verwendung von Schnittstellen ist im Gegensatz zur Klassenvererbung scheinbar deutlich größer, jedoch weiß ich nicht so ganz warum das so ist. Ich weiß, dass Schnittstellen die Methoden, Ergebnisse und Eigenschaften definieren, welche dann schlussendlich von Klassen implementiert werden können. Meiner Meinung nach sind das aber zwei völlig unterschiedliche Sachen. Im Handbuch steht auch das Schnittstellen zu empfehlen sind, wenn keine Klassenvererbung verwendet werden kann, aber was soll ich auch sonst anderes verwenden? Auch steht dort das Schnittstellen zu empfehlen sind, wenn keine Klassenvererbung erforderlich ist, aber wo steckt nun hier der Sinn?

Was genau ist denn bitte der Unterschied zwischen Schnittstellen und der Klassenvererbung bei Visual Basic? Wenn ich das eine nicht benutzen kann oder soll und stattdessen nur die andere Funktion verwende, dann ist das doch nur logisch oder? Sind Schnittstellen und die Klassenvererbung zwei Funktionen die aufeinander aufbauen oder die unabhängig voneinander benutzt werden können? In welchen Fällen werden Schnittstellen eher benutzt als Klassenvererbungen und umgekehrt?

» Horkrux » Beiträge: 564 » Talkpoints: 53,84 » Auszeichnung für 500 Beiträge



Im Prinzip funktionieren Schnittstellen und Klassenvererbung ähnlich. Beide sorgen dafür, dass man verschiedene Klassen mit den gleichen Methoden ansprechen kann. Man hat allerdings immer ein Problem, wenn man Mehrfachvererbung benötigt, also eine Klasse schaffen möchte, die von zwei Mutterklassen erbt. So etwas kann eine ganze Reihe von Problemen mit sich führen, die die Behandlung einer solchen Klasse erschwert. Durch die Verwendungen von Interfaces werden diese Probleme umgangen, da man nun eben nicht mehr zwei Superklassen hat, sondern nur eine - oder gar keine. Dafür hat man eine Reihe von Interfaces, die man implementieren muss.

» Weasel_ » Beiträge: » Talkpoints: Gesperrt »


Schnittstellen werden auch Interfaces genannt, wie Weasel__ es auch schon genannt hat. Das ist sogar eigentlich die gängige Bezeichnung, mich wundert es gerade, dass es in Visual Basic Schnittstelle genannt werden. Mein Software Engineering hat uns Interfaces als Analogie zum Schaltknüppel am Auto erklärt. Man kann Interfaces nämlich dazu nutzen, irgendetwas zu machen beziehungsweise zu benutzen, ohne Ahnung davon zu haben, wie das funktioniert. Um Auto zu fahren, muss man auch keine Ahnung davon haben, wie das Getriebe funktioniert, sondern man muss nur wissen, wie man den Schaltknüppel bedient und der erledigt den Rest dafür.

Rein von der Programmierung her bieten Interfaces den Vorteil, dass sie Mehrfachvererbung möglich machen. Man kann von beliebig vielen Interfaces erben, aber nur von einer normalen Superklasse. Daher sollte man, wenn man die Möglichkeit hat, eine Superklasse immer lieber zu einem Interface machen, weil die Subklasse dann auch noch von einer anderen Superklasse erben kann.

Viele Design Patterns, also Konzepte, die in der Softwareentwicklung genutzt werden, wenn ein bestimmtes Problem in einem bestimmten Kontext besteht, beinhalten Interfaces.

» *sophie » Beiträge: 3506 » Talkpoints: 1,38 » Auszeichnung für 3000 Beiträge



Ähnliche Themen

Weitere interessante Themen

^