Depuis Java 9, les méthodes d'une interface peuvent être privées. Une méthode privée peut être statique ou une méthode d'instance. Comme les méthodes privées ne peuvent être utilisées que dans les méthodes de l'interface elle-même, leur utilisation se limite à être des méthodes auxiliaires pour les autres méthodes de l'interface.
Cay S. Horstmann, Core Java Volume I - Fondamentaux
Je comprends que nous pouvons mettre la fonctionnalité commune dans les méthodes privées et non la rendre accessible au public. Mais nous pouvons avoir ici deux types de méthodes privées:
private
private static
L'utilisation de private static
méthodes est compréhensible, mais quand devrions-nous utiliser des private
méthodes? Nous ne traitons pas des instances ici car il s'agit d'une interface, alors pourquoi créer des private
méthodes est-il autorisé? N'avons-nous pas besoin que de private static
méthodes?
private
méthode d'instance de l'interface dans la classe qui implémente l'interface.private static
méthodes.Réponses:
OK, une autre tentative de répondre aux questions de OP. Lorsque vous devez appeler une autre méthode non statique sur l'interface à partir d'une méthode privée, la méthode privée ne peut pas être statique. Par exemple, il y aurait une erreur de compilation si la méthode privée ci-dessous était statique:
la source
Les interfaces sont utilisées pour définir le comportement d'un objet. Cela signifie que toutes les méthodes de l'interface sont exposées. Lorsque vous utilisez des méthodes par défaut, nous pouvons fournir des implémentations standard des méthodes définies, offrant une réutilisation du code au-delà des limites de classe.
Dans certains cas, une fonctionnalité est requise (peut-être juste pour la réutilisation de code dans différentes méthodes par défaut ) mais ne doit pas être exposée car elle polluerait les espaces de noms de la classe / objet. C'est là que les méthodes par défaut privées sont utiles. Des exemples de méthodes par défaut privées peuvent être des usines, des validations ou la gestion des états par défaut.
la source