package com.java1.day19;
public class DefaultMethodTest18 {
public static void main(String[] args) {
Child c = new Child();
c.method1();
c.method2();
MyInterface1.staticMethod();
MyInterface2.staticMethod();
}
}
class Child extends Parent implements MyInterface1, MyInterface2 {
@Override
public void method1() {
System.out.println("method1() in Child");
}
@Override
public void method2() {
System.out.println("method2() in Child");
}
}
class Parent {
public void method2() {
System.out.println("method2() in Parent");
}
}
interface MyInterface1 {
default void method1() {
System.out.println("method1() in MyInterface1");
}
default void method2() {
System.out.println("method2() in MyInterface1");
}
static void staticMethod() {
System.out.println("staticMethod() in MyInterface1");
}
}
interface MyInterface2 {
default void method1() {
System.out.println("method1() in MyInterface2");
}
static void staticMethod() {
System.out.println("staticMethod() in MyInterface2");
}
}
출력결과
method1() in Child
method2() in Child
staticMethod() in MyInterface1
staticMethod() in MyInterface2