JAVA(SPRINGBOOT)

[JAVA] INTERFACE(인터페이스)

본듀 2022. 12. 6. 20:56

인터페이스의 역할

인터페이스(Interface)는 객체의 사용방법을 정의한 타입
개발코드와 객체가 서로 통신하는 접점 역할

개발코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메서드를 호출
코드에서 직접 객체의 메서드를 호출하지 않는 이유는
사용하는 객체를 코드 수정없이 변경하기 위함이다.
인터페이스는 여러 객체들과 사용이 가능하므로 어떤 객첼를 사용하느냐에 따라 실행 내용과 리턴값이 달라진다.

인터페이스의 선언

public interface InterfaceName { ''' }

클래스는 필드, 생성자, 메서드로 구성되지만
인터페이스는 상수와 메서드만으로 구성된다.

인터페이스는 객체로 생성할 수 없기때문에 생성자를 가질 수 없다.

public interface 인터페이스명 {
	//상수
    타입 상수명 = 값;
    
    //추상 메서드
    타입 메서듬명(매개변수);
    
    //디폴트 메서드
    default 타입 메서드명(매개변수) { ''' }
    
    //정적 메서드
    static 타입 메서드명(매개변수) { ''' }
}

디폴트 메서드 : 인터페이스에서 선언되지만 사실은 구현 객체가 가지고있는 인스턴스 메서드라고 생각해야함
정적 메서드 : 객체가 없어도 인터페이스만으로 호출 가능 (클래스의 정적메서드와 동일)

구현 클래스

public class 구현클래스명 implements 인터페이스명 {
	//인터페이스에 선언된 추상 메서드의 실체 메서드 선언
}

 

디폴트 메서드의 필요성

인터페이스A를 확장한 클래스 A, B가 있을 때
두 클래스 모두에 같은 역할의 메서드를 추가해야 할 경우가 있으면
인터페이스에 디폴트메서드를 추가함으로써 클래스는 수정할 필요가 없어 생산성이 높아진다.

'JAVA(SPRINGBOOT)' 카테고리의 다른 글

[JAVA] EXCEPTION(예외처리)  (0) 2022.12.16
[JAVA] STREAM(스트림)  (0) 2022.12.16
[JAVA] Hashmap  (0) 2022.11.01
[SPRING JPA] ORM, JPA, Hibernate  (0) 2022.09.13
API, WAS, HTTP, RESTful API, CORS  (0) 2022.08.10