Skip to content

Latest commit

 

History

History
34 lines (25 loc) · 1.31 KB

13장(디폴트 메서드).md

File metadata and controls

34 lines (25 loc) · 1.31 KB

디폴트 메서드

자바8은 기본 구현을 포함하는 인터페이스를 정의하는 두 가지 방법을 제공한다.

  • 정적 메서드(static method)
    • 인터페이스 내부에 정적 메서드 사용
  • 디폴트 메서드(default method)
    • 인터페이스의 기본 구현을 제공할 수 있도록 디폴트 메서드 사용

즉, 자바8 에서는 메서드 구현을 포함하는 인터페이스를 정의할 수 있다. 인터페이스를 구현하는 클래스는 자동으로 인터페이스에 추가된 새로운 메서드의 디폴트 메서드를 상속받게 된다. 이렇게 하면 기존의 코드 구현을 바꾸도록 강요하지 않으면서도 인터페이스를 바꿀 수 있다.

디폴트 메서드는 다중 상속 동작 이라는 유연성을 제공하면서 프로그램 구성에도 도움을 준다.

  • 특징
    • 디폴트 메서드는 default 키워드로 시작한다.
    • 메서드 바디를 포함한다 {}
public interface Sized {
  int size();
  default boolean isEmpty() {
    return size() == 0;
  }
}

동작 다중상속

  • 클래스는 한 개만 상속 받을 수 있지만, 인터페이스는 여러 개 구현할 수 있다.
public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, Serializable {}