본문 바로가기
study/Java

[Java] 24. Interface5 (default , static)

by 금이패런츠 2022. 3. 22.
728x90
반응형
package chap8;
/*
 * JDK8버전 이후부터 인터페이스의 멤버 메서드도 구현부를 가질수 있음.
 * default 메서드 : 인스턴스메서드
 * static 메서드  : 클래스 메서드
 */
interface Myinterface1 {
	void method();
	default void method1() {
		System.out.println("Myinterface1의 default 메서드:method1");
	}
	static void staticMethod() {
		System.out.println("Myinterface1의 static 메서드:staticMethod");
	}
}
interface Myinterface2 {
	void method();
	default void method1() {
		System.out.println("Myinterface2의 default 메서드:method2");
	}
	static void staticMethod() {
		System.out.println("Myinterface2의 static 메서드:staticMethod");
	}
}
class Parent {
	public void method() {
		System.out.println("Parent 클래스의 멤버 메서드:method2");
	}
}
class Child extends Parent implements Myinterface1, Myinterface2{
	//default 메서드가 2개 존재. 구현클레스에서 오버라이딩해야함.
	@Override
	public void method1() {
//		Myinterface2.super.method1();
		System.out.println("Child클래스에서 default 메서드의 method1 오버라이딩함");
	}
}
public class InterfaceEx5 {
	public static void main(String[] args) {
		Child c = new Child();
		c.method();
		c.method1();
		Myinterface1.staticMethod();
		Myinterface2.staticMethod();
	}
}
728x90
반응형