Cet article présente principalement les informations pertinentes sur le résumé des classes internes anonymes en Java. J'espère que cet article pourra aider tout le monde. Les amis dans le besoin peuvent se référer à
Résumé des classes internes anonymes en Java.
Les classes internes anonymes sont également des classes internes sans nom
Parce qu'elles n'ont pas de nom, les classes internes anonymes ne peuvent être utilisées qu'une seule fois. Elles sont généralement utilisées pour simplifier l'écriture de code
.Mais il y a une condition préalable à l'utilisation de classes internes anonymes : vous devez hériter d'une classe parent ou implémenter une interface
Exemple 1 : Ne pas utiliser de classes internes anonymes pour implémenter des méthodes abstraites
abstract class Person { public abstract void eat(); } class Child extends Person { public void eat() { System.out.println("eat something"); } } public class Demo { public static void main(String[] args) { Person p = new Child(); p.eat(); } }
Résultat d'exécution : manger quelque chose
Comme vous pouvez le voir, nous utilisons Child pour hériter de la classe Person , puis implémentez Child Une instance de , convertissez-la en une référence à la classe Person
Cependant, si la classe Child ici n'est utilisée qu'une seule fois, ne serait-il pas difficile de l'écrire en tant que classe indépendante ?
À cette époque, des classes internes anonymes ont été introduites
Exemple 2 : Implémentation de base de classes internes anonymes
public abstract void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
Résultat d'exécution : manger quelque chose
Comme vous pouvez le voir, nous avons directement implémenté la méthode dans la classe abstraite Personne entre accolades
pour qu'on puisse en omettre un Écriture de classe
De plus, les classes internes anonymes peuvent également être utilisées sur les interfaces
Exemple 3 : Utiliser des classes internes anonymes sur les interfaces
interface Person { public void eat(); } public class Demo { public static void main(String[] args) { Person p = new Person() { public void eat() { System.out.println("eat something"); } }; p.eat(); } }
Résultat d'exécution : manger quelque chose
Comme le montre l'exemple ci-dessus, tant qu'une classe est abstraite ou une interface, alors les méthodes dans ses sous-classes peuvent être implémentées à l'aide de classes internes anonymes
La situation la plus courante est dans l'implémentation du multi-threading, car pour implémenter le multi-threading, vous devez hériter de la classe Thread ou de l'interface Runnable
Exemple 4 : Implémentation d'une classe interne anonyme de la classe Thread
public class Demo { public static void main(String[] args) { Thread t = new Thread() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; t.start(); } }
Résultat d'exécution : 1 2 3 4 5
Exemple 5 : Implémentation de classe interne anonyme de l'interface Runnable
public class Demo { public static void main(String[] args) { Runnable r = new Runnable() { public void run() { for (int i = 1; i <= 5; i++) { System.out.print(i + " "); } } }; Thread t = new Thread(r); t.start(); } }
Résultat d'exécution : 1 2 3 4 5
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!