인터페이스란 간단하게 말해서 서로 간에 지키는 약속이라고 말 할 수 있겠다.
두 사람이 대화를 나누는데
한명은 한국사람이고 다른 한명은 미국 사람이면
서로 언어가 달라서 이해하기 어렵다.
그렇기 때문에 우리가 어떤 규칙을 정해놓고 이야기를 하자는 것이
인터페이스라고 할 수 있겠다.
조금 더 구체적으로 설명하자면
인터페이스에 정해져있는 메소드를 통해서만
통신을 하겠다 라고 보면 되겠다.
그렇다면 인터페이스는 어떤 특징을 가지고 있을까?
1. 인터페이스는 추상 메서드와 상수만을 가질 수 있다.
다른 클래스에서 인터페이스를 통해 메서드를 구현하여 사용한다. (상속이 아닌 구현 Implements)
추상 클래스는 멤버 변수나 일반 메서드 , 추상 메서드 등을 가질 수 있지만
인터페이스는 오로지 추상 메서드와 상수만을 가질 수 있다.
public interface UserService {
List<User> findEveryUser();
Page<User> pageUser(int number);
List<Role> findEveryRole();
void deleteUser(Integer id);
User saveUser(User user);
User getUser(Integer id);
}
위의 코드 특징은 메소드의 Body가 존재하지 않는다.
추상 메소드로만 이루어져 있다.
2. 인터페이스에 구현되는 메서드의 접근자는 Public만 가능하다.
인터페이스는 외부와의 통신을 목적으로 만들어졌기 때문에 ,
접근 제어자를 생략한다고 해도 항상 Public으로 정해져 있다. (Public,Default,Protected,Private)
3. 인터페이스를 구현하는 클래스는 모든 메서드를 재정의 하여야 한다.
그렇지 않으면 인터페이스를 구현한 클래스는 추상 클래스로 선언되어야 한다.
https://baek-kim-dev.site/57 서블릿 컨테이너에 대해서 알아볼 내용
'자바의 봄(Spring) > 자바와 스프링 공부하기' 카테고리의 다른 글
[JAVA] Servlet에 대해서 (0) | 2022.12.21 |
---|---|
[JPA] @Transient 어노테이션에 관한 이해 (0) | 2022.12.16 |
[JPA] 임베디드 타입 (0) | 2022.12.10 |
[JPA] 지연로딩과 즉시로딩 (2) | 2022.12.06 |
[자바] toString을 재정의 하라 (0) | 2022.12.04 |
댓글