Wenn wir haben:
%Vor%Gibt es einen Unterschied zwischen:
%Vor%und
%Vor% Ich sehe viel Code wie diesen und es verwirrt mich immer. Muss BarBar
Foo
implementieren? Ich meine, da es Bar
erweitert, um damit zu beginnen, ist das nicht schon da? Ich denke, meine Frage ist, welchen Zweck erfüllt die Implementierung von Foo
in BarBar
hier?
Der Hauptunterschied besteht in 15 völlig unnötigen Zeichen: -)
Wenn Ihre Elternklasse eine Schnittstelle implementiert, werden alle Schnittstellenmethoden entweder von ihr implementiert oder (explizit oder implizit) als abstrakt definiert. In jedem Fall erbt Ihre Klasse, die die Elternklasse erweitert, alle diese Methoden und implementiert implizit die ursprüngliche Schnittstelle.
Es gibt keinen Unterschied. Das extra implements
dort ist harmlos, aber nutzlos.
Es könnte argumentiert werden, dass die zweite "erweitert X implementiert Y" ist ausführlich, aber die zusätzlichen paar Zeichen sind eine gute Erinnerung. Werfen Sie einen Blick auf ArrayList etc Ich bin mir ziemlich sicher, dass sie die lange Form verwenden - erweitert AbstrsvtList implementiert List.
Am Ende sind die meisten Entwickler Schnellschreiber, so dass die zusätzlichen paar Zeichen praktisch keine Zeit zum Tippen kosten. Warum sind so viele Ziele beim Tippen weniger, wenn es um Klarheit geht und Mehrdeutigkeit beseitigt wird und nicht alle Fakten angegeben werden ...
Nun, ich stimme all den Kommentaren, die zu diesem Thema gesagt wurden, zu, dass es eine wirklich unnötige Implementierung ist, auch wenn ich das Verhalten von barbar in Bezug auf foo-Implementierung übersteuern möchte, um das Überschreiben dieser Methoden zu erzwingen und mache die IDE automatisch für mich!
Aber es ist die gleiche Sache wie das Überschreiben dieser Funktionalität in der Barbar