Default Method in Interface

2021. 11. 22. 16:59·Programming/Java

자바8에서는 메소드 구현을 포함하는 인터페이스를  정의할 수 있다.

 

default method

인터페이스의 기본 구현을 제공한다.

기존 인터페이스를 구현한 클래스는 자동을 인터페이스에 추가된 디폴트 메소드를 상속 받게 된다.

 

default 메서드가 나온 이유

  • 인터페이스에 새로운 메서드(추상 메서드)를 추가하기 어려움 (인터페이스 : 추상 메서드 집합)

  • 인터페이스의 변경의 전파를 최소화할 수 있다.
interface Repairable{
	boolean isfinished(); // 추상 메서드
}
interface Repairable{
	default boolean isfinished(){}; // Default 메서드(추상 메서드 X), 구현도 가능함 
}

 

디폴트 메서드를 이용하면 인터페이스의 기본 구현을 그대로 상속하므로 인터페이스에 자유롭게 새로운 메서드를 추가할 수 있게된다. 

 

인터페이스에 새로운 메소드를 추가하려면 인터페이스를 구현하는 기존의 모든 클래스에 새로운 메소드를 추가, 구현해야 한다. 기존 클래스를 관리할 수 있는 상황이면 쉽게 해결 가능하지만, 인터페이스가 오픈되어 대중에 공개되었을 때는 애매한 상황이 놓여진다.

'Programming > Java' 카테고리의 다른 글

Collection  (0) 2022.02.11
원시(Primitive) 타입과 참조(Reference) 타입  (0) 2022.02.11
JAVA 25(3) 어노테이션  (0) 2021.09.17
JAVA 22(2) 제네릭 2  (0) 2021.08.14
JAVA 22(1) 제네릭 2  (0) 2021.08.14
'Programming/Java' 카테고리의 다른 글
  • Collection
  • 원시(Primitive) 타입과 참조(Reference) 타입
  • JAVA 25(3) 어노테이션
  • JAVA 22(2) 제네릭 2
사랑우주인
사랑우주인
  • 사랑우주인
    lovelyAlien
    사랑우주인
  • 전체
    오늘
    어제
  • 글쓰기
    관리
    • 분류 전체보기 (209)
      • Programming (4)
        • Spring (28)
        • Java (46)
        • JPA (2)
        • 디자인 패턴 (5)
        • 개발&아키텍처 (0)
      • Network (14)
      • OS (19)
      • Database (1)
      • Kubernetes (0)
      • Kafka (2)
      • Algorithm (49)
        • BaekJoon (1)
        • Programmers (19)
        • Algorithm (5)
        • Socar (2)
        • LeetCode (19)
      • Interview (2)
      • Issues (2)
      • DotJoin (1)
      • Git (4)
      • 독서 (3)
      • 끄적끄적 (1)
      • 외부활동 (26)
        • 항해플러스 (2)
        • JSCODE 네트워크 (19)
        • JSCODE 자바 (5)
      • SQL (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Generic
    LinkedList
    OS
    Process
    운영체제
    algorithm
    @JsonProperty
    runner 기법
    rotting oranges
    fcfs
    lower bounded wildcards
    @JsonNaming
    트랜잭션
    Climbing Stairs
    디자인 패턴
    socar
    제네릭
    minimum number of arrows to burst balloons
    추상화 클래스
    clone graph
    RR
    BFS
    JSCode
    pacific atlantic water flow
    AuthenticationSuccessHandler
    wildcards
    Oauth2
    Reorder List
    Thread
    준영속 엔티티
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
사랑우주인
Default Method in Interface
상단으로

티스토리툴바