interface Int {
public void show();
}
public class Test {
public static void main(String[] args) {
Int t1 = new Int() {
public void show() {
System.out.println("message");
}
};
t1.show();
}
}
risposta
Si sta definendo una classe anonima che implementa l'interfaccia Int
e creando immediatamente un oggetto di tipo thatAnonymousClassYouJustMade
.
Ciò che questa speciale sintassi per le classi interne anonime fa sotto il cofano crea una classe chiamata Test$1
. Puoi trovare quel file di classe nella cartella della classe accanto alla classe Test e se hai stampato t1.getClass().getName()
potresti anche vederlo.
Questa notazione è una scorciatoia per
Int t1 = new MyIntClass();
// Plus this class declaration added to class Test
private static class MyIntClass implements Int
public void show() {
System.out.println("message");
}
}
Così alla fine si sta creando un'istanza di una classe concreta, il cui comportamento è stato definito in linea.
È possibile farlo anche con classi astratte, fornendo implementazioni per tutti i metodi astratti in linea.
Penso che il tuo oggetto non abbia nulla a che fare con l'interfaccia. Se commentate l'intera interfaccia, otterrete comunque lo stesso risultato. È stata creata la sua classe anonima. Penso che, a meno che tu non usi la classe "implementa", non puoi implementare l'interfaccia. Ma non so come la denominazione della collisione non avvenga nel tuo caso.
La classe anonima implementa definitivamente l'interfaccia e 't1 instanceof Int' sarà vera. – Thilo
- 1. Creare un oggetto Swift da un dizionario
- 2. può automapper creare un oggetto grafico da un oggetto flattato?
- 3. Come funziona un oggetto classmethod?
- 4. Come creare un file eseguibile da un file oggetto c?
- 5. creare un dizionario da oggetto groupby, Python
- 6. Come posso utilizzare Generics per creare un modo per creare un oggetto IEnumerable da un enum?
- 7. Come creare un oggetto sfumato con Raphael
- 8. Come creare un oggetto XML da String in Java?
- 9. Come creare un oggetto File da dati binari in JavaScript
- 10. Come funziona ToList() su un oggetto IEnumerable?
- 11. Come creare un oggetto Parametri globali
- 12. Come creare un nuovo oggetto in JavaScript?
- 13. Come posso creare facilmente un oggetto fortemente tipizzato da un oggetto anonimo in TypeScript?
- 14. Come creare un oggetto BLOB in java?
- 15. Come creare un oggetto con JNI?
- 16. Come creare un oggetto JSON in Scala?
- 17. Devo creare un oggetto DateRange?
- 18. CMake creare un oggetto condiviso
- 19. knockout creare un oggetto vuoto da auto-mapped osservabile
- 20. Come creare un oggetto data NSDate?
- 21. Come creare un oggetto COM in F #
- 22. Come creare un oggetto datetime con PyYAML
- 23. Creare un oggetto classe base da una classe derivata
- 24. Javascript: oggetto [metodo]() non funziona o come creare un plugin jQuery per un semplice codice Javascript
- 25. Creare una matrice in Swift da un oggetto NSData
- 26. Creare un oggetto con proprietà,
- 27. Come utilizzare un oggetto jQuery da php?
- 28. creare dinamicamente una nuova classe JavaScript da un oggetto esistente
- 29. Creare un oggetto sottoinsieme, costituito solo da alcune delle proprietà di un oggetto esistente
- 30. creare un documento javascript Oggetto
Questo è davvero utile per i gestori di eventi (come quelli che utilizzano l'interfaccia ActionListener). –