오늘은 인터페이스에 대해 간략하게 알아보겠다.
1. 인터페이스의 개념
인터페이스는 간단히 생각하면 콘센트라고 생각하면 된다.
어떤 제품과도 상관없이 콘센트만 220v면 사용할 수 있듯이
제품을 나누어 개발하고 하나로 합칠때 미리 규격을 정하지 않으면 문제가 생길 수 있기때문에 어떻게 하자~ 라고 규칙을 정한것을 인터페이스 라고 한다.
- 인터페이스만 준수하면 통합에 신경쓰지않고 다양한 형태로 새로운 클래스를 개발할 수 있다.
- 클래스의 다중 상속을 지원하지 않지만 인터페이스로 다중 상속 효과를 간접적으로 할 수 있다.
2. 인터페이스의 구성요소
인터페이스는 무엇을 할지는 명시하지만 어떻게 할지는 명시하지않는다.
기본적으로 자바에는 여러가지 인터페이스를 지원하지만 이것은 필요에 따라 다르기 때문에 찾아보길 권한다.
대표적으로는 java.util의 List,Collection,Comparator등이 있다.
2 - 1. 인터페이스 사용방법
인터페이스는 기본적으로 클래스와 문법이 유사하지만 인스턴스 변수를 선언할수없다.
객체를 생성할수 없기에 생성자도 없다.
interface 인터페이스이름{
// 상수 필드
-> public static final을 생략해도 된다.
// 추상 메서드
-> 모든 메서드가 public abstract이기 때문에 public abstract를 생략해도 된다.
// 디폴트 메서드
// 정적 메서드
-> Java8 부터 선언이 가능하다.
// 비공개 메서드
-> Java9 부터 선언이 가능하다. 인터페이스 내부에서만 사용할수있는 도우미 라고 생각하면 된다.
}
3. 인터페이스의 상속
인터페이스도 extends 키워드를 통해 자식 인터페이스를 정의할 수 있다.
그리고 인터페이스로 자식클래스를 정의하려면 추상 메서드를 구현해야하므로 implements 키워드를 사용한다.
// 인터페이스를 상속하려면 extends 를 사용한다.
interface 자식_인터페이스 extends 부모_인터페이스{
.....
}
// 인터페이스를 구현하려면 implements를 사용한다.
interface 자식_인터페이스 implements 부모_인터페이스{
.....
}
// 상속할 인터페이스가 여러개라면 쉼표로 연결한다.
interface 자식_인터페이스 extends 부모_인터페이스1,부모_인터페이스2,부모_인터페이스3{
.....
}
class 자식 클래스 implements 부모인터페이스1,......{
}
// 인터페이스는 다중 상속할 수 있다.
interface 자식_인터페이스 extends 부모_클래스 implements 부모_인터페이스1.....{
.....
}
// 클래스는 다중 상속할 수 없다.
class 자식클래스 extends 부모클래스1, 부모클래스2 ... -> x
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 스프링의 정의와 특징 (0) | 2023.07.24 |
---|---|
[JAVA] Ajax에 대하여 ( 업데이트 필 ) (0) | 2023.04.18 |
[JAVA] 메서드에 대하여 (0) | 2023.04.16 |
[JAVA] Web에서의 맵핑(Mapping)이란?? (0) | 2023.04.11 |
[JAVA] 자바 기본 지식에 대하여 (0) | 2023.04.06 |