What is a default method in Java 8

In Java 8, a default method is a method that is defined in an interface with the keyword default. This allows developers to add new methods to interfaces without breaking the existing implementations of these interfaces. Default methods provide the ability to evolve interfaces over time and enable multiple inheritance of behavior in Java.

Default methods can be particularly useful for providing shared functionality among classes that implement the interface, without requiring them to implement the methods themselves.

Here is an example of a default method in Java 8:

interface MyInterface {
  default void myDefaultMethod() {
    System.out.println("This is a default method.");
  }
void myAbstractMethod();
}
class MyClass implements MyInterface {
  public void myAbstractMethod() {
    System.out.println("Implemented abstract method.");
  }
}
public class Main {
  public static void main(String[] args) {
    MyClass myClass = new MyClass();
    myClass.myDefaultMethod();
    myClass.myAbstractMethod();
  }
}

Java 8 default method interface multiple inheritance method evolution