interface: 객체의 사용 방법을 정의한 타입

 - 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다.

 - 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있다.(실행내용과 리턴값을 다양화할 수 있다)

 

[ public ] interface 인터페이스명 { ... }

 - 인터페이스는 상수와 메소드만을 구성 멤버로 가진다.

    > Constant Field, Abstract Method, Default Method, Static Method

 - 인터페이스에 선언된 추상 메소드는 모두 public abstract 특성을 갖기 때문에 생략하더라도 자동적으로 컴파일 과정에서 붙게 된다.

 - 인터페이스에 선언된 메소드는 모두 public 특성을 갖기 때문에 생략해도 자동적으로 컴파일 과정에서 붙게 된다.

 

인터페이스 구현(implements)

 - 인터페이스에 선언된 추상 메소드에 대응하는 실체 메소드를 구현 클래스가 작성하지 않으면 구현 클래스는 자동적으로 추상 클래스가 된다. 클래스 선언부 abstract 키워드 추가

 

익명 구현 객체

인터페이스 변수 = new 인터페이스() {

   // 인터페이스에 선언된 추상 메소드의 실체 메소드 선언

};

 

타입 변환과 다형성

 

인터페이스 상속

 - 클래스와는 달리 다중 상속을 허용

 - 하위 인터페이스로 타입 변환이 되면 상/하위 인터페이스에 선언된 모든 메소드를 사용할 수 있으나, 상위 인터페이스로 타입 변환되면 상위 인터페이스에 선언된 메소드만 사용 가능하다.

 - 부모 인터페이스에 디폴트 메소드가 정의 되어 있을 경우, 자식 인터페이스에서 디폴트 메소드를 활용하는 3가지 방법

    > 디폴트 메소드를 단순히 상속만 받는다

    > 재정의해서 실행 내용을 변경한다

    > 추상 메소드로 재선언한다

'Java > Java' 카테고리의 다른 글

[이것이자바다]11. 기본 API 클래스  (0) 2020.05.03
[이것이자바다]7. 상속  (0) 2020.04.20
[이것이자바다]6. 클래스  (0) 2020.04.19
[이것이 자바다]5. 참조 타입  (0) 2020.04.19
[이것이 자바다]3. 연산자  (0) 2020.04.18

+ Recent posts