Od Javy 9, w interfejsach możemy używać również metod prywatnych
Ponieważ Java pozwala nam na używanie metod domyślnych, pozwala tym samym na wprowadzanie ciała metod. W sytuacji gdy dwie metody domyślne, używają tego samego fragmentu kodu – ten wspólny fragment kodu można wydzielić do jednej metody prywatnej. Mata ta zaś będzie wywołana przez te metody domyślne. W ten sposób jesteśmy zgodnie z zasadą DRY – don’t repeat yourself. Przykład:
private int getValue(int value1, int value2) { return value1 + value2; } default int multiply(int value) { return getValue(4,3) * value; } default int sum(int value) { return getValue(4,3) + value; } }
Powyżej dwie metody domyślne, które wykorzystują ten sam algorytm dodawania dwóch liczb. W obu przypadkach korzystamy z tej samej metody prywatnej zwracającej wynik algorytmu – getValue. Pierwsze metoda domyślna mnożymy watrość getValue przez wartość parametru value, a w drugiej dodajemy do wyniku wartość parametru value.
Gdyby nie metody prywatne, to albo konieczne byłoby duplikowanie metody algorytmu w metodach multiply i w sum, albo użylibyśmy metodę domyślną lub statyczną. Tylko, że wtedy taka metoda była by publiczna. Jeżeli więc pewna metoda jest potrzebna tylko do wykorzystania w danym interfejsie to wystarczy nam użycie metody prywatnej . Dodatkowo prywatne metody w interfejsach mogą być jednoczesnie metodami statycznymi.