Maison  >  Article  >  Java  >  La différence entre les méthodes d'interface par défaut et les méthodes d'interface statiques dans Java 8

La différence entre les méthodes d'interface par défaut et les méthodes d'interface statiques dans Java 8

王林
王林avant
2023-08-30 23:17:171212parcourir

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éthodes par défaut tr>
M. Non Clés Méthodes d'interface statique
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

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

Exemples de méthodes par défaut et de méthodes statiques dans les interfaces

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer