인터페이스는 일종의 추상 클래스이다.
인터페이스는 추상 클래스보다 추상화 정도가 높아서 몸통을 갖춘 일반 메서드 또는 멤버 변수를 구성원으로 가질 수 없으며 오직 추상 메서드와 상수만을 멤버로 가질 수 있다.
interface interfaceName {
public static final {type} {constantName} = value;
public abstract methodName(params);
}
인터페이스의 멤버들은 다음과 같은 제약사항이 있다.
- 모든 멤버 변수는 public static final 이어야 하며 이를 생략할 수 있다.
- 모든 메서드는 public abstract 여야 하며 이를 생략할 수 있다.(static 메서드와 default 메서드는 예외, jdk1.8부터)
interface PlayingCard {
public static final int SPADE = 4;
final int DIAMOND = 3; // public static final int DIAMOND = 3;
static int HEART = 2; // public static final int HEART = 2;
int CLOVER = 1; // public static final int CLOVER = 1;
public abstract String getCartNumber();
String getCardKind(); // public abstract String getCardKind();
}
위와 같이 생략된 제어자는 컴파일 시에 컴파일러가 자동적으로 추가해준다.
'Java의 정석' 카테고리의 다른 글
인터페이스를 이용한 다형성 (0) | 2022.04.21 |
---|---|
인터페이스의 상속, 구현 (0) | 2022.04.20 |
추상클래스의 작성 (0) | 2022.04.18 |
추상 메서드(abstract method) (0) | 2022.04.15 |
추상 클래스(abstract class) (0) | 2022.04.14 |