Vererbung vs. Interfaces

Hallo Gemeinde,

ich hab hier im Forum bereits gestörbert, aber noch keine Artikel für mein o.g. Thema erkannt, daher meine Frage:

Ich hab mich bereits mit Vererbung und mit Interfaces beschäftigt und weiß wie sich grundsätzlich funktionieren. Aber praktisch programmiert nur recht wenig. Wie sieht denn aus Sicht von Euch ambitionierten oder Profi-Programmierern die Gegenüberstellung von Vererbung vs. Interfaces aus, welche grundsätzlichen Vorteile und Nachteile haben jeweils beide Formen?

Ich bin für jede Einschätzung sehr dankbar.

Gruß Dan

Hi,

bei der Vererbung werden die existierenden Funktionen einer bereits existierenden Klasse 1:1 übernommen. Dann kann man Sachen dazu machen oder existierende Sacher ersetzen. So verbessert man etwas fertiges/existierendes oder passt etwas fertiges/existierendes an.

Bei Interfaces hingegen stellt man nur sicher, dass mehrere verschiedene Klassen, das das selbe Interface implementieren ein gewisses identisches Grundgerüst aufweisen. Man fängt aber von Grund auf neu an.
Dies ist ideal um Kompatibilität sicher zu stellen. Ein Beispiel: Kryptographie muss 2Methoden haben, verschlüsseln und entschlüsseln die jeweils eine Bitfolge und einen Schlüssel entgegen nehmen und wieder eine Bitfolge ausgeben.
Man kann jetzt WPA und WEP in 2 verschiedenen Klasse implementieren. Die beide funktionieren und sind austauschbar, weil sie genau die selben Parameter/Datentypen aufweisen. Und das ist eben durch die Interfaces garantiert.

MFG