[객체 지향 프로그래밍 입문 - 인프런] 인터페이스

김성혁·2021년 2월 6일
0
post-thumbnail

인터페이스(interface)란?

  • 자바에서는 클래스를 통한 다중 상속은 지원하지 않고 인터페이스를 통해 다중 상속을 지원

    → 다중 상속의 모호성 해결

  • 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있지만

    인터페이스(interface)는 오로지 추상 메소드와 상수만을 포함할 수 있다.

  • 자바 8부터는 인터페이스에 디폴트 메서드(default method)를 지원

    • default 키워드를 반드시 붙여서 메서드 작성

      interface Printable {
      
        public abstarct void paper();
      
        ...
      
        public default void setPrint(boolean color){
          if(color){
            System.out.println("컬러 출력");
          }
          else {
            System.out.println("흑백 출력");
          }
        }
      
        ...
      
      }
    • 디폴트 메서드의 목적은 기존 인터페이스 기능을 확장하며, 구현체에 공통적으로 들어갈 기능(코드)를 디폴트 메서드 내부에 작성함으로써 반복되는 코드의 작성을 줄여줌.

  • 인터페이스는 인터페이스로부터만 상속을 받을 수 있으며, 여러 인터페이스를 상속받을 수 있다.

인터페이스 선언

접근제어자 interface 인터페이스이름 {

    public static final 타입 상수이름 =;

    ...

    public abstract 메소드이름(매개변수목록);

    ...

}

/*
클래스와는 달리 인터페이스의 모든 필드는 public static final이어야 하며,
모든 메소드는 public abstract이어야 함
인터페이스에 선언된 상수와 추상 메서드는 public static final과
public abstract를 컴파일 시에 자동으로 생성해주기 때문에 생략 가능
*/

인터페이스 구현

class 클래스이름 implements 인터페이스이름 { ... }

Reference

코딩교육 티씨피스쿨

자바 인터페이스와 추상클래스

0개의 댓글