Why do we need private methods in an interface in Java 9?

An interface supports default methods since Java 8 version. Sometimes these default methods may contain a code that can be common in multiple methods. In those situations, we can write another default method and make code reusability. When the common code is confidential then it's not advisable to keep them in default methods because all the classes that implement that interface can access all default methods.

An interface can have private methods since Java 9 version. These methods are visible only inside the class/interface, so it's recommended to use private methods for confidential code. That's the reason behind the addition of private methods in interfaces.


private void methodName() {
   // some statementscode


interface Operation {
   default void addition() {
      System.out.println("default method addition");
   default void multiply() {
      System.out.println("default method multiply");
   private void division() {         // private method
      System.out.println("private method division");

class PrivateMethodTest implements Operation {
   public static void main(String args[]) {
      PrivateMethodTest test = new PrivateMethodTest();


private method division
default method multiply