Począwszy od Java 9, metody w interfejsie mogą być prywatne. Metodą prywatną może być metoda statyczna lub instancja. Ponieważ prywatnych metod można używać tylko w metodach samego interfejsu, ich użycie jest ograniczone do metod pomocniczych dla innych metod interfejsu.
Cay S. Horstmann, Core Java Tom I - Podstawy
Rozumiem, że możemy umieścić wspólną funkcjonalność w metodach prywatnych i nie udostępniać jej publicznie. Ale możemy tu mieć dwa rodzaje prywatnych metod:
private
private static
Stosowanie private static
metod jest zrozumiałe, ale kiedy powinniśmy stosować private
metody? Nie mamy tutaj do czynienia z instancjami, ponieważ jest to interfejs, więc dlaczego tworzenie private
metod jest dozwolone? Czy nie potrzebujemy tylko private static
metod?
private
metodę instancji interfejsu w klasie, która implementuje interfejs.private static
metody.Odpowiedzi:
OK, kolejna próba odpowiedzi na pytania OP. Gdy trzeba wywołać inną metodę niestatyczną na interfejsie z metody prywatnej, metoda prywatna nie może być statyczna. Na przykład wystąpiłby błąd kompilacji, gdyby poniższa metoda prywatna była statyczna:
źródło
Interfejsy służą do definiowania zachowania obiektu. Oznacza to, że wszystkie metody interfejsu są widoczne. Korzystając z metod domyślnych, możemy zapewnić standardowe implementacje zdefiniowanych metod, oferując ponowne użycie kodu ponad granicami klas.
W niektórych przypadkach wymagana jest funkcjonalność (być może tylko do ponownego użycia kodu w różnych metodach domyślnych ), ale nie należy jej ujawniać, ponieważ spowodowałoby to zanieczyszczenie przestrzeni nazw klasy / obiektu. Tutaj przydają się prywatne domyślne metody . Przykładami prywatnych metod domyślnych mogą być fabryki, walidacje lub domyślna obsługa stanu.
źródło