Java 인터페이스
Java의 인터페이스(Interface)
동일한 목적 하에 동일한 기능을 수행하게끔 강제 하는 것이 인터페이스 이다.
자바의 다형성을 이용하여 개발코드 수정을 줄이고 프로그램 유지 보수성을 높이기 위해 인터페이스 사용
예를 들어 금융감독원에서 기본적으로 제공하는 인터페이스 함수가 있다면 각 은행에서 이 인터페이스에 맞추어 해당 기능을 사용한다.
- 인터페이스는
interface
키워드를 통해 선언할 수 있고,implements
키워드를 통해 일반클래스에서 인터페이스 구현 가능 - 구현
public interface 인터페이스명{ // 상수 타입 상수명 = 값; // 추상메소드 타입 메소드명(매개변수, ...); // 디폴트메소드 default 타입 메소드명(매개변수, ...){ // 구현부 } // 정적메소드 static 타입 메소드명(매개변수, ...) { // 구현부 } }
public class 자식클래스명 implements 인터페이스명{ @Override public void 추상메소드명(매개변수, ...){ // 구현부 } @Override public void 디폴트메소드명(매개변수, ...){ // 구현부 } }
- 상수 : 인터페이스에서 정한 값을 함부로 바꿀수 없으며, 제공한데로만 사용해야 함.
- 추상메소드 : 인터페이스를 통해 가이드를 제공하므로, 오버라이딩을 사용하여 재구현할 수 있다.(
implements
사용) - 디폴트메소드 : 인터페이스에서 가이드를 제공하지만, 개발자 스스로 각자 구현 가능
- 정적메소드 : 인터페이스에서 정한 메소드를 함부로 바꿀 수 없으며 제공한데로만 사용해야 한다.