목표

자바의 인터페이스에 대해 학습하세요.

학습할 것 (필수)

  • 인터페이스 정의하는 방법
  • 인터페이스 구현하는 방법
  • 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법
  • 인터페이스 상속
  • 인터페이스의 기본 메소드 (Default Method), 자바 8
  • 인터페이스의 static 메소드, 자바 8
  • 인터페이스의 private 메소드, 자바 9

인터페이스 정의하는 방법

public interface 인터페이스명 { }

인터페이스 구현하는 방법

public class 클래스명 implements 인터페이스명 { } interface는 extends 와 implements 갯수에 대한 제한이 없다.

인터페이스 레퍼런스를 통해 구현체를 사용하는 방법

인터페이스명 인스턴스명 = new 인터페이스명(); **또한 메소드가 한개일 경우 익명내부 클래스로도 구현할수 있다.** 인터페이스명 인스턴스명 = new 인스턴스명() { @Override 메소드관련정보 };

인터페이스의 상속

public interface 인터페이스명 extends 인터페이스명 { }

  • 상위 인터페이스를 상속받아 하위 인터페이스에서 사용할수 있다.
  • 상위 인터페이스의 구현을 extends로 하위인터페이스에서 default method로 할수 있다.

인터페이스의 기본 메소드 ( Default Method ) java 8

  • Java 8 부터 추가된 Default Method는

  • 메소드의 내부구현이 불가능했던 interface가 내부구현도 가능하도록 변경되었다.

  • 상속을 통한 인터페이스끼리의 구현도 가능해졌다.

  • 상위 인터페이스에서 작성한 메소드를 하위 인터페이스에서 상속받아 default method로 구현하는것이 그것이다.

  • 여러 인터페이스에서의 디폴트 메소드가 동일한 경우에는 구현클래스에서 디폴트 메소드를 오버라이딩 해줘야 한다.

  • 디폴트 메소드와 조상 클래스의 메소드간에 동일하는 경우에는 조상 클래스의 메소드가 상속되고 디폴트 메소드는 무시된다.

인터페이스의 스태틱 메소드 ( Static Method ) java 8

  • Java 8부터 추가된 static 메소드
  • static 메소드를 선언하여 메소드의 내부를 구현할수 있게 되었다.
  • 기존클래스처럼 class이름 메소드로 호출하는것이 아닌 인터페이스.이름으로 호출
  • 재정의는 불가능하다.
  • 하위 인터페이스가 상위의 스태틱 메소드를 상속하지 않는다.

참고

https://atoz-develop.tistory.com/entry/JAVA-8-interface-default-키워드와-static-메소드

https://dahyeee.tistory.com/entry/JAVA-interface-default-static메소드

https://docs.oracle.com/javase/specs/jls/se8/html/jls-9.html#jls-9.1

자바의정석

'백선생님 온라인스터디' 카테고리의 다른 글

11주차 Enum  (0) 2021.01.30
9주차 - 예외 처리  (0) 2021.01.19
7주차 - 패키지  (0) 2021.01.12
6주차 상속  (0) 2021.01.10
4주차 - 제어문  (0) 2021.01.09

+ Recent posts