java Default Method(인터페이스 디폴트 메소드)

2022. 4. 26. 18:53 JAVA/Java

추상 클래스내 함수 구현 처럼 Interface 클래스 내에 함수를 선언 및 구현할 수 있도록 한다.

Interface 구현 클래스에서 Override 할 수 있다.

 

왜? 나왔을까?

"하위 호환성" 때문에 등장

인터페이스에 신규 함수 선언시 기존에 상속받아 구현하던 클래스에 모두 빨간불이 들어와 직접 구현을해야하는 상황을 방지하기 위해 등장함.

 

 

간단 코드로 보기

public class DefaultClass{
    public interface TestInterface {
    	// 선언 후 구현까지 해야한다.
        default void defaultFunction(){
            System.out.println("this is default function");
        }
    }

    private static class SubClass11 implements TestInterface{
    	// 기존 Interface 함수처럼 Override 가능
        @Override
        public void defaultFunction() {
            System.out.println("this is SubClass Function");
        }
    }

    private static class SubClass22 implements TestInterface{	
    	// default Function은 구현하지 않아도 된다.
    }

    public static void main(String[] args) {
        SubClass11 subClass11 = new SubClass11();
        SubClass22 subClass22 = new SubClass22();

        subClass11.defaultFunction();
        subClass22.defaultFunction();
    }
}

실행 결과



출처: https://lovon.tistory.com/191?category=862726 [Java 개발 블로그]