Wie kann eine anonyme Klasse eine Oberklasse erweitern oder eine Schnittstelle implementieren?
java
anonymous-class
Mike Rylander
quelle
quelle
Antworten:
Anonyme Klassen müssen wie jede andere Java-Klasse etwas erweitern oder implementieren, auch wenn es nur so ist
java.lang.Object
.Beispielsweise:
Hier
r
ist ein Objekt einer anonymen Klasse, die implementiertRunnable
.Eine anonyme Klasse kann eine andere Klasse mit derselben Syntax erweitern:
Was Sie nicht tun können, ist mehr als eine Schnittstelle zu implementieren. Dazu benötigen Sie eine benannte Klasse. Weder eine anonyme innere Klasse noch eine benannte Klasse können jedoch mehr als eine Klasse erweitern.
quelle
SomeClass
. Es ist immer noch anonym, aufgrund der{...}
.Eine anonyme Klasse implementiert normalerweise eine Schnittstelle:
Wenn Sie meinen, ob Sie 2 oder mehr Schnittstellen implementieren können, dann denke ich, dass das nicht möglich ist. Sie können dann eine private Schnittstelle erstellen, die beide kombiniert. Obwohl ich mir nicht leicht vorstellen kann, warum Sie möchten, dass eine anonyme Klasse das hat:
quelle
Anonyme Klassen erweitern immer Superklassen oder implementieren Schnittstellen. beispielsweise:
Obwohl anonyme Klassen nicht mehrere Schnittstellen implementieren können, können Sie eine Schnittstelle erstellen, die andere Schnittstellen erweitert, und Ihre anonyme Klasse diese implementieren lassen.
quelle
Ich denke, niemand hat die Frage verstanden. Ich denke, was dieser Kerl wollte, war so etwas:
weil dies Dinge wie mehrere Schnittstellenimplementierungen ermöglichen würde:
das wäre wirklich schön; aber das ist in Java nicht erlaubt .
Was Sie können tun ist verwenden lokale Klassen innerhalb Methode blockiert:
quelle
quelle
Eine anonyme Klasse wird beim Erstellen ihres Objekts erweitert oder implementiert. Beispiel:
Hier implementiert eine anonyme Klasse Interface.
hier erweitert anonyme Klasse eine abstrakte Klasse.
quelle