2024-06-01 03:58:37

인터페이스는 객체의 사용방법을 정의한 타입이다.

객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다.

 

인터페이스의 역할

1. 개발 코드가 객체에 종속되지 않게 함 -> 객체 교체할 수 있도록 하는 역할

2. 개발 코드 변경 없이 리턴값 또는 실행 내용이 다양해 질 수 있음

 

인터페이스 선언

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

 

인터페이스의 구성 멤버

1. 상수 필드     -    모든 필드는 public static final이 자동적으로 붙는다 (안붙이면 컴파일러가 붙임), 선언과 동시에 초기화 해줘야 함    

2. 추상 메소드      - public abstract가 자동으로 붙음

3. 디폴트 메소드        - 실행블록을 가지고 있는 메소드 (구현클래스에서 재정의하지 않아도 상관없음)

4. 정적 메소드

(인터페이스는 인스턴스 필드를 가질 수 없다!!!)

 

 

구현 클래스 선언

implement 키워드로 명시한다.

public class 구현클래스명 implements 인터페이스명 { ... }

 

익명 구현 객체

명시적인 구현 클래스 작성은 생략하고 바로 구현 객체를 얻는 방법

이름없는 구현 클래스 선언과 동시에 객체 생성

ex) new Thread(new Runnable (public void run() {...} )).start();