본문 바로가기
JAVA/Java

인터페이스

by KkingKkang 2023. 3. 14.
  • 극단적으로 동일한 목적 하에 동일한 기능을 수행하게끔 강제하는 것
  • 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위해 사용함.
  • 인터페이스는 interface키워드를 통해 선언할 수 있으며, implements키워드를 통해 일반 클래스에서 인터페이스를 구현할 수 있다.
  • JAVA8 이전까지는 상수, 추상메소드만 선언이 가능했지만 (그만큼 강제성이 강했다) JAVA8부터는 디폴트메소드, 정적 메소드가 추가되었다.
public interface 인터페이스명 {

//상수
타입 상수명 = 값;

//추상메소드
타입메소드명(매개변수,...);

//디폴트메소드
default 타입 메소드명(매개변수,....){
// 구현부 
}

//정적메소드
static 타입 메소드명(매개변수) {
//구현부
}

}
  • 상수 = 인터페이스에서 값을 정해줄테니 함부로 바꾸지 말고 제공해주는 값만 참조해라 (절대적)
  • 추상메소드 = 가이드만 줄테니 추상메소드를 오버라이딩 해서 재구현해라(강제적)
  • 디폴트메소드 = 인터페이스에서 기본적으로 제공해주지만, 맘에 안들면 각자 구현해서 써라 (선택적)
  • 정적 메소드 = 인터페이스에서 제공해주는 것으로 무조건 사용하라(절대적)
  • 절대적 = 아무것도 손댈 수 없음
  • 강제적 = 인터페이스를 implements하지 않으면 피할 순 있음

 

인터페이스는 객체 지향 개발 5대 원칙 - SOLID를 만족시켜 줄 수 있다.

서비스 애플리케이션의 라이프 사이클을 설계/개발/유지보수 단계로 나누면 유지보수가 소프트웨어 라이프 사이클에서 큰 부분을 차지함.

유지보수에서 인터페이스는 solid를 구현하고, 객체지향개발을 하는데 큰 도움을 준다.

 

인터페이스의 역할

  • 인터페이스는 객체를 어떻게 구성해야 하는지 정리한 설계도이다.
  • 인터페이스는 객체의 교환성 또는 다형성을 높여준다.
  • 인터페이스를 이용하여 개발 코드를 직접 수정하지 않고도 사용하고 있는 객체만 변경할 수 있도록 하기 위함이다.

 

 

반응형

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

클래스의 구조  (0) 2023.03.30
자바 언어 개요  (0) 2023.03.28
업캐스팅과 다운캐스팅  (0) 2023.03.14
상속  (0) 2023.03.14
배열(array) - 자료를 순차적으로 한꺼번에 관리하는 방법  (0) 2023.03.14

댓글