[JAVA] 객체지향 - 디폴트 메서드, static 메서드

2024. 9. 1. 01:34·Back-End/Java

[작성일: 2023. 01. 31]

 

목차

     

    디폴트 메서드, static 메서드

    • 인터페이스에 디폴트 메서드, static 메서드 추가 (JDK 1.8부터)
    • 인터페이스에 새로운 메서드(추상 메서드)를 추가하기 어려움.
      • 해결책: 디폴트 메서드(default method)
    • 디폴트 메서드는 인스턴스 메서드(인터페이스 원칙 위반, 추상메서드가 아닌 예외상황 발생)
    interpace MyInterface {
      void method();
      void newMethod(); // 추상메서드
      //기존에 있던 인터페이스들이 이 추상메서드가 추가되면서 전부 수정하는 번거로움이 있음.
    }
    
    // ⬇️
    
    interface MyInterface {
      void method();
      default void newMethod() {} // 추상메서드가 아니라 몸통이 있음.
    }

     

    메서드명 설명
    default - 메서드를 인터페이스가 만드는 것.
    - 구현할 때 다시 만들기 가능.
    - 라이브러리 업데이트 때문에 생김.
    static - 구현한 클래스의 객체화 필요없이 호출 가능함.

     

     

     

    디폴트 메서드가 기존의 메서드와 충돌할 때의 해결책

     

    1. 여러 인터페이스의 디폴트 메서드 간의 충돌

        - 인터페이스를 구현한 클래스에서 디폴트 메서드를 오버라이딩 해야 함.

     

    2. 디폴트 메서드의 조상 클래스의 메서드 간의 충돌

        - 조상 클래스의 메서드(우선권)가 상속되고, 디폴트 메서드는 무시됨.

     

    ➡️ ⭐직접 오버라이딩 하면 해결됨.

     

     

     

     

     

     

     

     

     

     


    🐣 해당 게시글은 자바의 정석(남궁성 님) 영상으로 함께 공부하며 요약/정리한 글입니다.
    🐣 입문 개발자가 작성한 글이므로 틀린 내용이나 오타가 있을 수 있습니다.

     

    저작자표시 비영리 변경금지 (새창열림)
    'Back-End/Java' 카테고리의 다른 글
    • [JAVA] 내부 클래스
    • [JAVA] 예외처리
    • [JAVA] 기본 클래스
    • [JAVA] 객체지향 - 인터페이스
    뚜비
    뚜비
    1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
    • 뚜비
      뚜비의 개발로그
      뚜비
    • 전체
      오늘
      어제
    • 글쓰기     관리
      • Devlog
        • Back-End
          • Java
          • Spring
          • JPA
          • HTTP
          • Security
          • Back-End
          • Front-End
        • 알고리즘
        • iOS
          • Swift
        • Database
        • Tips
          • Git & GitHub
          • A to Z
        • 프로젝트
        • 생각정리
    • 태그

      jsp
      sql
      MVC
      Java
      html
      데이터베이스
      자바
      프로그래머스
      spring
      성능최적화
      Database
      다형성
      Security
      HTTP
      Spring Security
      백준
      의존성주입
      객체
      JPA
      게시판만들기
      Swift
      DB
      변수
      생성자
      김영한
      스프링
      최주호
      알고리즘
      javascript
      자바스크립트
    • hELLO· Designed By정상우.v4.10.0
    뚜비
    [JAVA] 객체지향 - 디폴트 메서드, static 메서드
    상단으로

    티스토리툴바