Nur eine einfache Syntaxfrage. Angenommen, wir haben eine Schnittstelle, die wir IMyClass
, und eine abstrakte Klasse nennen, die implementiert, die wir AbstractMyClass
nennen und erklärt sich wie folgt:Syntaxfrage - Erweiterung abstrakter Klassen, die eine Schnittstelle implementieren
public abstract class AbstractMyClass implements IMyClass {
}
Nun, wenn wir eine konkrete Umsetzung von MyClass schaffen, die wir nennen .. .! MyClass
gibt es zwei Möglichkeiten, in denen wir es erklären können:
public class MyClass extends AbstractMyClass {
}
und
public class MyClass extends AbstractMyClass implements IMyClass {
}
Was hier am besten? Ich nehme an, die Antwort darauf ist nur eine Frage der Vorliebe, aber ich wollte nur ein paar Gedanken dazu hören.
Vielen Dank im Voraus,
Joseph.
Beachten Sie, dass Josh Bloch gesagt hat (kann mich nicht erinnern, wo ich es sah, sorry), dass in Fällen wie 'HashMap' da, er doesn‘ Ich denke, die "Implementes Map" fügt viel hinzu und er würde es auslassen, wenn er es wieder tun würde. –
ColinD
Würde er es wieder tun müssen? Was passiert, wenn beim nächsten JDK-Release die 'implements'-Klausel gelöscht wird? Es wäre immer noch binär und quellkompatibel (da die 'implements' sowieso impliziert sind), oder? – Thilo
Führt eine explizite 'implements'' instanceof' (etwas leichter) schneller? – Thilo