[Java] Default Method(디폴트 메소드)

YEVVU·2022년 7월 5일

Java

목록 보기
3/3

Default Method

: 메서드 선언 시에 default를 명시하게 되면 인터페이스 내부에서도 로직이 포함된 메서드를 선언할 수 있음 (자바 8)

interface MyInterface {
	default void printMessage() {
    	System.out.println("Defaul Method!");
    }
}


Default Method를 사용하는 이유

: 인터페이스는 기능에 대한 선언만 가능하기 떄문에 실제 코드를 구현한 로직은 포함하지 않음

=> 등장 이유 : 하위 호환성

... (중략) ... 바로 "하위 호환성"때문이다. 예를 들어 설명하자면, 여러분들이 만약 오픈 소스코드를 만들었다고 가정하자. 그 오픈소스가 엄청 유명해져서 전 세계 사람들이 다 사용하고 있는데, 인터페이스에 새로운 메소드를 만들어야 하는 상황이 발생했다. 자칫 잘못하면 내가 만든 오픈소스를 사용한 사람들은 전부 오류가 발생하고 수정을 해야 하는 일이 발생할 수도 있다.
이럴 때 사용하는 것이 바로 default 메소드다. (자바의 신 2권)

기존에 존재하던 인터페이스를 이용하여서 구현된 클래스를 만들고 사용하고 있는데 인터페이스를 보완하는 과정에서 추가적으로 구현해야 할 혹은 필수적으로 존재해야 할 메소드가 있다면, 이미 이 인터페이스를 구현한 클래스와의 호환성이 떨어지게 됨. 이러한 경우 default 메소드를 추가하게 된다면 하위 호환성은 유지되고 인터페이스의 보완을 진행할 수 있음.



자바의 Default Method (디펄트 메소드)

0개의 댓글