[CS 지식] interface에 default 메서드란 무엇인가

Kim Hyen Su·2024년 11월 26일

면접질문

목록 보기
18/27
post-thumbnail

JAVA 8 버전부터 사용 가능한 기술로서, 인터페이스 내부에 추상 메서드 외에 구현된 메서드 정의가 가능하도록 해준다. 이를 사용하는 이유는 크게 2가지 정도가 존재한다.

  1. 하위 호환성 :
    인터페이스를 구현한 여러 클래스가 존재할 때, 인터페이스 내 관련 메서드를 추가하게될 경우, 모든 클래스에 해당 메서드를 구현해줘야 한다. 이처럼 인터페이스 수정으로 인해 발생할 수 있는 비용을 줄여준다.

  2. 선택적 구현 :
    기존에는 인터페이스 내 모든 추상 메서드는 구현 클래스 내부에 구현해줬어야 했다. 하지만, 일부 클래스에서 사용하지 않는 기능의 경우까지도 구현을 해줘야 하는 상황이 발생할 수 있다. default 메서드는 구현 클래스에서 필요로 하는 기능을 재정의하여 사용할 수 있도록 해줌으로써 선택적으로 구현할 수 있도록 해준다.


추상 클래스를 상속받는 것과 인터페이스를 구현하는 것의 차이점

추상 클래스를 상속받는 것은 추상 클래스의 상태와 기능을 모두 사용할 수 있으며,이로 인해 두 클래스 간의 결합도가 올라가게 된다. 또한, 클래스 간의 상속은 하나만 가능하다.

인터페이스는 필요한 기능을 선택적으로 구현하게 된다. 또한, 필요한 기능이 여러개인 경우에 이를 다수의 인터페이스로 구현이 가능하다. 이를 통해 상속보다 유연한 설계가 가능해진다.

profile
백엔드 서버 엔지니어

0개의 댓글