[백기선 자바] 인터페이스

[백기선 자바] 인터페이스

작성일자
Jul 20, 2023
태그
SUB PAGE
프로젝트
백기선 자바
책 종류

[자바 라이브 스터디] 8주차 - 인터페이스

1. 인터페이스 정의하는 방법

  • 정의) 다른 클래스 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스
    • 특징) 추상클래스와 차이점
      • 추상클래스
        • 추상 메서드 외에도 일반 메서드와 멤버 변수를 가질 수 있음
      • 인터페이스
        • 일반 메서드와 멤버 변수를 가질 수 없음
          • 예외) JDK1.8부터 static 메서드와 default 메서드는 허용됨
        • 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있음
        • 모든 멤버 변수는 public static final 이어야 하며, 이를 생략할 수 있음

      2. 인터페이스 구현하는 방법

      • 구현 클래스
        • 정의)
          • 특징)
            • 인터페이스 메서드 중 일부만 구현한다면, abstract 붙여서 추상클래스로 선언해야 함
            • 상속(extends)와 구현(implements) 동시에 할 수 있음
        • 익명 구현 객체
          • 정의)
            • 특징)
              • 재사용하지 않고 일회성으로 사용할 때 효율적

          3. 인터페이스 상속

          • 정의) 인터페이스는 인터페이스로부터만 상속 받을 수 있음
          • 특징)
            • 클래스와 달리 다중상속 가능
              • static 상수만 정의할 수 있어서 조상의 멤버 변수와 충돌할 일 거의 없음
            • 클래스와 마찬가지로 자손은 조상의 모든 멤버 상속받음

          4. 인터페이스의 기본 메소드 (Default Method), 자바 8

          • 정의) 인터페이스에 메소드 선언이 아니라 구현체를 제공하는 방법

            5. 인터페이스의 static 메소드, 자바 8

            • 정의) 인스턴스와 관계 없는 독립적인 메서드라 인터페이스에 추가하지 못할 이유가 없어서 JDK 1.8부터 추가됨
            • 특징)
              • override가 안됨
              • 인터페이스 타입 직접 참조해 호출해야 함