인터페이스(interface)

- 객체의 사용 방법을 정의한 타입. 객체의 교환성을 높여주기 때문에 다형성을 구현하는데 중요한 역할

- 개발 코드와 객체가 서로 통신하는 접점 역할함. 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드 호출됨

- 개발 코드를 수정하지 않고 사용하는 객체를 변경할 수 있도록 하기 위해서 사용

- 하나의 객체가 아니라 여러 객체들과 사용이 가능하므로, 어떤 객체를 사용하냐에 따라 실행 내용과 리턴값 다를 수 있음  -> 다양화할 수 있음

 


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

-> 모두 public 이기 때문에 더 낮은 접근 지정자 사용 불가

 

- 상수 필드

인터페이스 = 객체 사용 설명서. 런타임 시 데이터 저장하는 필드 선언 불가
 상수 필드 선언은 가능 -> 초기값 대입 필요   ex) 타입 상수명 = 값;

 

- 추상 메소드

객체가 가지고 있는 메소드를 설명한 것으로 호출할 때 어떤 매개 값 필요. 리턴 타입이 무엇인지만 알려줌 -> 실행부에서 객체 가지고 있음
ex) 타입 메소드명(매개변수, ...);

- 디폴트 메소드

인터페이스에 선언되지만 사실 객체가 가지고 있는 인스턴스 메소드 -> 인터페이스 확장해서 새로운 기능 추가하기 위해
ex) default 타입 메소드명(매개변수, ...){}

- 정적 메소드

디폴트 메소드와 달리 객체가 없어도 인터페이스만으로 호출 가능
ex) staticc 타입 메소드명(매개변수) {}

 

- 인터페이스 구현 

객체는 인터페이스에서 정의된 추상 메소드와 동일한 메소드 이름, 매개 타입, 리턴 타입을 가진 실체 메소드를 가지고 있어야 함

- 구현 클래스

보통의 클래스와 동일한데, 인터페이스 타입으로 사용 가능을 알리기 위해 implements 키워드 사용
ex) public class 클래스명 implements 인터페이스명
    인터페이스 변수 = 구현 객체;  ex) RemoteControl  rc= new Television();

- 익명 구현 클래스

소스 파일을 만들지 않고 구현 객체를 만들 수 있는 방법을 제공.
UI 프로그래밍 이벤트 처리/임시 작업 스레드 만들기 위해 주로 사용
ex) 인터페이스 변수 = new 인터페이스(){ //인터페이스에 선언된 추상 메소드의 실체 메소드 정의};

- 다중 인터페이스 구현 클래스

인터페이스는 다중 상속 가능  ex) implements 인터페이스 1, 인터페이스 2;
다중 인터페이스 구현 시, 구현 클래스는 모든 인터페이스의 추상 메소드에 대한 실체 메소드 정의해야 함 -> 안 하면 에러/추상 클래스(abstract)로 해야함

 

- 디폴트 메소드

인터페이스에 선언되지만, 인터페이스에서 바로 사용 불가
추상 메소드가 아닌 인스턴스 메소드이므로 구현 객체가 필요 ex) RemoteControl rc = new RemoteControl; rc.메소드();

- 정적 메소드

인터페이스에서 바로 호출 가능 ex) RemoteCotrol. 메서드();

 

 

-<이것이 자바다1>. 한빛미디어 

'JAVA' 카테고리의 다른 글

인터페이스 예제  (0) 2019.06.18
인터페이스_2  (0) 2019.06.18
상속 예제_스택(Stack), 큐(Queue)  (0) 2019.06.18
추상화 예제  (0) 2019.06.18
상속 예제_extends, super, Override  (0) 2019.06.18

+ Recent posts