프로그래밍 관점에서 인터페이스는 추상 메서드의 집합을 의미
상수(static final)와 추상 메서드(abstract method)의 집합
interface
키워드 사용하여 정의
인터페이스의 모든 메서드는 public abstract로 정의해야 함
모든 멤버 변수는 'public static final'으로 선언해야 하며, 마찬가지로 이를 생략할 수 있음
interface 인터페이스이름 {
public static final 타입 상수이름 = 값;
public abstract void 메서드이름(매개변수);
void 메서드이름() {}; // public abstract void 메서드이름();
}
추상클래스의 구현
인터페이스의 조상은 인터페이스만 가능(Object가 조상 아님)
다중 상속이 가능
extends
키워드 사용interface Fightable extends Movable, Attackable { } // 다중상속 가능
interface Movable {
void move(int x, int y);
}
interface Attackable {
void attack(Unit u);
}
인터페이스에 정의된 추상 메서드를 완성하는 것( = 미완성 설계도를 완성하는 것)
implements
키워드 사용
class 클래스이름 implements 인터페이스이름 {
// 인터페이스에 정의된 추상메서드를 반드시 모두 구현해야 함(Override)
public void 메서드명1() {
/* 내용 생략 */
}
public void 메서드명2() {
/* 내용 생략 */
}
}