Méthodes par défaut de Java 8
Java 8 a introduit des méthodes par défaut pour les interfaces.
En termes simples, les méthodes par défaut signifient que les interfaces peuvent avoir des méthodes implémentées, et les classes qui les implémentent n'ont pas besoin de les implémenter.
Nous devons simplement ajouter le mot-clé default avant le nom de la méthode pour implémenter une méthode par défaut.
Pourquoi avoir cette fonctionnalité ?
Premièrement, l'interface précédente était une arme à double tranchant. L'avantage est qu'elle est orientée vers l'abstraction plutôt que vers une programmation spécifique. L'inconvénient est que lorsqu'il faut modifier l'interface, toutes les classes qui implémentent cette interface doivent être modifiées. Le framework de collections actuel avant Java 8 n'avait pas de méthode foreach. La solution habituelle que l'on peut envisager est d'ajouter de nouvelles méthodes et implémentations aux interfaces concernées dans le JDK. Cependant, pour les versions déjà publiées, il n'y a aucun moyen d'ajouter de nouvelles méthodes à une interface sans affecter les implémentations existantes. C'est pourquoi les méthodes par défaut ont été introduites. Leur but est de résoudre l'incompatibilité entre les modifications d'interface et les implémentations existantes.
Syntaxe
Le format de syntaxe d'une méthode par défaut est le suivant :
Plusieurs méthodes par défaut
Si une interface a une méthode par défaut, considérez le cas où une classe implémente plusieurs interfaces, et où ces interfaces ont la même méthode par défaut. L'exemple suivant illustre la solution à cette situation :
La première solution consiste à créer votre propre méthode par défaut pour redéfinir la méthode par défaut de l'interface :
La deuxième solution consiste à utiliser super pour appeler la méthode par défaut de l'interface spécifiée :
Méthodes par défaut statiques
Une autre fonctionnalité de Java 8 est que les interfaces peuvent déclarer (et fournir des implémentations de) méthodes statiques. Par exemple :
Exemple de méthode par défaut
Nous pouvons comprendre l'utilisation des méthodes par défaut à travers le code suivant. Vous pouvez placer le code dans le fichier Java8Tester.java :
Fichier Java8Tester.java
En exécutant le script ci-dessus, le résultat de sortie est :
$ javac Java8Tester.java $ java Java8Tester 我是一辆车! 我是一辆四轮车! 按喇叭!!! 我是一辆汽车!
Autres extensions
Nouveautés de Java 8