인터페이스(interface)
서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용하는 장치나 시스템
인터페이스(interface)는 일종의 추상클래스이며 추상클래스보다 추상화 정도가 더 높다.
추상클래스를 미완성 설계도로 비유한다면 인터페이스는 기본 설계도에 비유할 수 있다.
인터페이스는 다른 클래스 작성에 도움을 주거나 서로 무관한 클래스들에게 관계를 맺어줄 목적으로 사용
인터페이스 특징
class 키워드 대신 interface 키워드를 사용하여 정의
인스턴스 생성 불가
모든 멤버변수에는 public static final 제어자가 붙음 (생략 가능)
모든 메서드는 public abstract 제어자가 붙음 (생략 가능)
// 인터페이스 생성
interface [인터페이스명] {
public static final 타입 상수명 = 값;
public abstract 메서드명(매개변수);
}
1. 개발시간 단축
2. 표준화 가능
3. 서로 무관한 클래스들에게 관계를 맺어줌
4. 독립적인 프로그래밍이 가능
클래스는 오직 하나의 수퍼 클래스만 가질 수 있었으나 인터페이스는 여러 개를 가질 수 있다. 그렇기 때문에 다중 상속의 구현을 도와준다.
interface MyInterface {
void myMethod();
}
interface YourInterface {
void yourMethod();
}
class MadPlay implements MyInterface, YourInterface {
@Override
public void myMethod() {
// do something
}
@Override
public void yourMethod() {
// do something
}
}