인터페이스

    인터페이스의 구조

    • 모든 필드가 public static final로 정의
    • static default 메서드 이외 모든 메서드는 public abstract로 정의

     

    인터페이스의 상속

    • implements 키워드 사용
    • 다중 상속이 가능
    • 여러 개의 인터페이스를 사용할 때 ,로 구분해 나열
    • 모든 필드가 public static final로 정의돼 있어 실제 데이터값은 각각의 인터페이스의 내부에 존재해 공간상 겹치지 않음
    • 메서드도 모두 미완성이어서 자식 클래스 내부에서 완성해 사용하므로 문제 x

     

    클래스가 인터페이스를 상속할 때 주의사항

    1. 자식 클래스는 반드시 미완성 메서드를 구현해야 함
    2. 자식 클래스의 구현 메서드는 반드시 public이어야 함

     

    인터페이스 타입의 객체를 생성하는 방법

    1. 인터페이스를 일반 클래스로 상속해 객체 생성
    2. 익명 이너 클래스를 사용해 객체 생성

     

    인터페이스를 사용하는 이유

    : 구현 클래스의 변경을 유연하게 사용 가능

     

    디폴트 메서드

    • 인터페이스에 변화가 생기면 해당 인터페이스를 상속받은 모든 클래스에서 오류가 발생 → 이를 보완하기 위해 디폴트 메서드를 추가함
    • 디폴트 메서드가 추가될 경우 완성된 메서드이므로 구현 클래스를 반드시 오버라이딩할 필요 없음
    • 인터페이스 내부에 속하는 일반 메서드처럼 동작함

     

    자식 클래스에서 부모 인터페이스의 디폴트 메서드 호출 방법

    → 인터페이스는 다중 상속이 가능하기 때문에 부모 인터페이스 중 어떤 인터페이스인지 명시하기 위해 부모 인터페이스명을 추가해 호출해야 함

     

    Static 메서드

    클래스 내부의 정적 메서드와 동일한 기능으로 객체를 생성하지 않고 ‘인터페이스명.정적 메서드명’방식으로 호출

     

    'JAVA' 카테고리의 다른 글

    대표적인 예외의 종류  (0) 2023.04.02
    예외  (0) 2023.04.02
    상속  (0) 2023.04.02
    접근지정자 - Abstract  (0) 2023.04.02
    접근지정자 - Final  (0) 2023.04.02

    댓글