Dies ist noch keine Frage über den Unterschied zwischen abstrakten Klassen und Interfaces, also denken Sie bitte zweimal darüber nach, bevor Sie abstimmen, um es zu schließen.Sind Schnittstellen redundant mit Mehrfachvererbung?
Ich bin mir bewusst, dass Schnittstellen in diesen OOP-Sprachen, die keine Mehrfachvererbung unterstützen - wie C# und Java - essentiell sind. Aber was ist mit diesen mit Mehrfachvererbung? Wäre ein Konzept der Schnittstelle (als spezifisches Sprachmerkmal) redundant in einer Sprache mit Mehrfachvererbung? Ich denke, dass OOP "Vertrag" zwischen Klassen kann mithilfe von abstrakten Klassen erstellt werden.
Oder, um es etwas expliziter zu sagen, sind Schnittstellen in C# und Java nur eine Konsequenz der Tatsache, dass sie keine Mehrfachvererbung unterstützen?
Nicht sicher, was Sie hier fischen: wie Bozho sagt, Interfaces sind eine Sprachebene Hedge gegen jemand Verhalten einer Klasse unerwartet ändern, indem eine Implementierung für Methoden, die abstrakt sein. –
Die Frage ist, ob MI-Sprachen brauchen diese Hecke wirklich oder nicht (siehe zum Beispiel Ken's Kommentare unten.) Ich habe auch gehofft, eine andere Meinung von außerhalb von Java/C# -Camps zu bekommen. " –