Maison >Java >javaDidacticiel >La différence entre les méthodes d'interface par défaut et les méthodes d'interface statiques dans Java 8
Selon les Javadocs d'Oracle -
Les méthodes par défaut vous permettent d'ajouter de nouvelles fonctionnalités aux interfaces d'une bibliothèque et d'assurer la compatibilité binaire avec le code écrit pour les anciennes versions de ces interfaces.
Une méthode statique est une méthode associée à la classe dans laquelle elle est définie, et non à un objet. Chaque instance d'une classe partage ses méthodes statiques.
Les méthodes statiques dans une interface font partie de l'interface, les classes ne peuvent pas l'implémenter ou la remplacer, mais les classes peuvent remplacer les méthodes par défaut.
M. Non | Clés | Méthodes d'interface statique | Méthodes par défaut|
---|---|---|---|
1 | Basique | Les méthodes statiques appartiennent uniquement à l'interface. Nous pouvons écrire l'implémentation de cette méthode dans l'interface elle-même | Il s'agit d'une méthode avec le mot-clé par défaut, la classe peut surcharger cette méthode | tr>
2 | Appel de méthode | Méthodes statiques ne peut être appelé que sur les classes d'interface, pas sur les classes. | Il peut être appelé sur l'interface ou sur la classe |
3 | Nom de la méthode | Interface et classe d'implémentation, les deux peuvent avoir des méthodes statiques avec le même nom, et aucune volonté se couvrir. | Nous pouvons remplacer la méthode par défaut dans la classe d'implémentation |
4. | Cas d'utilisation | Elle peut être utilisée comme méthode utilitaire | Elle peut être utilisée pour fournir dans toutes les classes d'implémentation Fonctions communes |
public interface DefaultStaticExampleInterface { default void show() { System.out.println("In Java 8- default method - DefaultStaticExampleInterface"); } static void display() { System.out.println("In DefaultStaticExampleInterface I"); } } public class DefaultStaticExampleClass implements DefaultStaticExampleInterface { } public class Main { static void main(String args[]) { // Call interface static method on Interface DefaultStaticExampleInterface.display(); DefaultStaticExampleClass defaultStaticExampleClass = new DefaultStaticExampleClass(); // Call default method on Class defaultStaticExampleClass.show(); } }
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!