JAVA/JAVA

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

lovineff 2021. 7. 7. 16:25

추상 클래스내 함수 구현 처럼 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();
    }
}

실행 결과

'JAVA > JAVA' 카테고리의 다른 글

파일 거꾸로 읽기  (0) 2023.05.26
파일 압축  (0) 2023.05.25
Equals 구현  (0) 2021.03.22
1000단위 콤마 입력  (0) 2021.03.09
이메일 마스킹 처리  (0) 2021.03.09