Java 8, @GhostCat. OO . , , , .
public class Main {
public static void main(String... args) {
SuperClass sc = new SubClass3();
sc.foo();
sc.bar();
}
interface SuperClass {
default void foo() {
System.out.println("default foo");
}
default void bar() {
System.out.println("default bar");
}
}
interface SubClass1 extends SuperClass {
@Override
default void foo() {
System.out.println("overridden foo");
}
}
interface SubClass2 extends SuperClass {
@Override
default void bar() {
System.out.println("overridden bar");
}
}
static class SubClass3 implements SubClass1, SubClass2 {}
}