Während es nicht möglich ist, sowohl eine Klasse zu erweitern und implementieren Sie eine Schnittstelle, was Sie wahrscheinlich tun können, mit delegation erreicht werden.
Erstellen Sie einfach eine Instanz von Base
im Initialisierer Ihrer anonymen Klasse und verwenden Sie deren Methoden aus den Methoden, die Sie implementieren von Interface1
.
EDIT: Meine Antwort geht davon aus, dass Sie nur von Base
erben wollen wegen seiner Umsetzung, nicht wegen seiner Schnittstelle. Dies ist eine gültige Annahme, da die Schnittstelle Base
nicht sichtbar ist, nachdem das Objekt einer Variablen Interface1
zugewiesen wurde. Daher denke ich, dass es besser ist, Delegierung hier zu verwenden, anstatt eine neue Klasse zu erstellen.
@EranMedan - Diese Frage bezieht sich speziell auf beides gleichzeitig: Erweiterung einer Klasse während der Implementierung einer Schnittstelle. Die andere Frage besteht darin, einen einzigen zu machen. –
@DavidHarkness Sie haben Recht, nicht mehr SO um 5 Uhr für mich –
Für mich fühlt es sich an wie Ihre beabsichtigte anonyme Klasse ist ein bisschen schizophren. Vor allem, wenn es mit Feldern der enthaltenden Klasse interagieren muss. Ich schlage vor, dass Sie darüber meditieren, wenn Sie wirklich ein leichtes Redesign benötigen. – Buhb