Ich bin mir bewusst, dass die meisten Dinge in modernen Programmiersprachen mindestens teilweise sind, basierend auf Features in früheren Sprachen.
Das bringt mich dazu, mich zu fragen, woher Java die Inspiration für Interfaces hat. War es hauptsächlich ihre eigene Kreation? Basierte es auf vollständig abstrakten Basisklassen (mit Mehrfachvererbung)?
In einem kürzlich erschienenen Objective-C-Buch las ich Learn Objective-C on the Mac
. Die Autoren schlagen vor, dass die Hauptinspiration für Javas Interfaces von Objective-Cs Implementierung von Formale Protokolle .
Formale Protokolle in Obj-C sind Dateien, genau wie Java Interfaces, die mit abstrakten Methoden gefüllt sind - oder einfach nur die Methodenheader - die der Entwickler implementieren muss, wenn das formale Protokoll verwendet wird. In der neuesten Aktualisierung von Apples Cocoa können formale Protokolle auch optionale Methoden enthalten, die der Entwickler nicht implementieren muss, wenn die Klasse das Protokoll implementiert.
Ich denke, dass die Designer von Java erkannt haben, dass viele Fehler bei der Verwendung mehrerer Implementations-Vererbungen gibt , aber immer noch gewollt sind in der Lage sein, zu vererben. Daher war die Lösung Vererbung mehrerer Schnittstellen .
Auch vom vorherigen Link:
Stattdessen haben sich die Designer von Java dafür entschieden Erlaube die Vererbung mehrerer Schnittstellen durch die Verwendung von Schnittstellen eine Idee Entlehnung aus den Protokollen von Objective C. Mehrfache Schnittstellenvererbung ermöglicht ein Objekt, das viele verschiedene erbt Methodensignaturen mit dem Vorbehalt, dass Das erbende Objekt muss implementiert werden diese vererbten Methoden.
Also, Sean ist in der Tat richtig.
Tags und Links java