Nouveautés des Interfaces en Java 8

Share:
Les interfaces en Java sont généralement un mécanisme permettant à un certain nombre de classes de partager un certain nombre de méthodes et de constantes. C'est aussi l'un des meilleurs mécanismes pour réaliser le polymorphisme en Java.

Donc, si vous étiez très familiers avec les interfaces avant l'arrivée de Java 8, il serait très logique de découvrir certaines des choses intéressantes que les interfaces pourraient faire.

Les interfaces antérieures à Java 8 ne contenaient que des méthodes abstraites et des constantes, et toute classe qui implémente une interface doit implémenter toutes ses méthodes ou être déclarée abstraite. Eh bien, c'était avant Java 8. Avec Java 8, cela a été mis à jour.

Les interfaces peuvent, après Java 7, contenir des méthodes avec des implémentations. Ces méthodes qui ont une implémentation à partir de l'interface ont été appelées méthodes par défaut. Ceux-ci permettent une implémentation par défaut d'une méthode par toutes les classes qui implémentent une interface et donnent la possibilité aux classes d'implémentation de surcharger la méthode, si elles le souhaitent.

public interface Bank{
    default String getBankName(){
        return “Azibit Bank”;
    }
}

Notez la syntaxe pour la méthode par défaut. Il doit être précédé du mot-clé default .

Avec cette introduction, la préoccupation majeure dans l'esprit de tous les développeurs Java est la suivante: "Comment ce concept a-t-il géré plusieurs héritages provenant d'interfaces différentes ou si une classe et une interface ont la même méthode?"

Eh bien, une telle préoccupation était anticipée, donc les règles suivantes s'appliquaient lorsque plus d'une interface ait la même méthode et qu'une classe les implémente toutes les deux.
  • Une implémentation en classe d'une méthode a plus de priorité sur une méthode par défaut. Ainsi, si la classe a déjà la même méthode qu'une interface, la méthode par défaut de l'interface implémentée ne prend pas effet.
  • Cependant, si deux interfaces implémentent la même méthode par défaut, il y a un conflit.
  • Dans les cas où une interface hérite d'une autre interface et que les deux implémentent une méthode par défaut, la méthode par défaut de l'interface enfant sera utilisée par une classe d'implémentation.
  • En outre, un appel explicite à une méthode par défaut d'interface peut être effectué à l'intérieur d'une classe d'implémentation en utilisant super. Par exemple Interface.super.defaultMethod ()
De plus, Java 8 a introduit des méthodes statiques dans les interfaces. Les interfaces peuvent donc créer des méthodes statiques et référencer ces méthodes statiques de n'importe où en appelant le nom de l'interface suivi du nom de la méthode. Par exemple: InterfaceName.staticMethodName ()

Pour créer une méthode statique, vous devez ajouter le mot clé static lors de la création de la méthode.
public interface Test{ 
    static String getStaticNumber(){ 
        return 1; 
    } 
}










Aucun commentaire