public class Main {
public static void main(String[] args) {
//classic way
ExampleAdapterSimple exampleSimple = new ExampleAdapterSimple();
exampleSimple.a();
//Default Method
ExampleInterface exampleDefault = new ExampleInterfaceDefault() {};
exampleDefault.a();
}
}
abstract class ExampleAdapter implements ExampleInterface {
@Override
public abstract void a();
@Override
public void b() {
System.out.println("b");
}
}
class ExampleAdapterSimple extends ExampleAdapter {
@Override
public void a() {
System.out.println("a");
}
}
interface ExampleInterface {
void a();
void b();
}
interface ExampleInterfaceDefault extends ExampleInterface {
default void a() {
System.out.println("a from ExampleInterfaceDefault");
}
default void b() {
System.out.println("b from ExampleInterfaceDefault");
}
}