- 구체적인 것을 만들기 전에 하는 것
- ex) 사용 정의서, 갑과 을의 약속 등
인터페이스 특징
✅ 인터페이스는 interface 키워드를 사용하여 정의
✅ 인터페이스는 상수와 추상 메소드로 구성되어 있다.
✅ 인터페이스 안의 모든 상수는 public static final 타입 (생략가능)
✅ 인터페이스 안의 모든 추상메소드는 abstract public 타입 (생략가능)
✅ 추상 클래스와 마찬가지로 인스턴스를 생성할 수 없다.
✅ 인터페이스는 래퍼런스 변수의 인터페이스 타입으로 사용될 수 있다.
✅ 인터페이스는 다른 인터페이스를 extends 키워드로 상속 받을 수 있으며, 다중 상속 (다중 - implements)이 가능하다.
✅ 클래스에서 인터페이스의 구현은 implements 키워드를 사용하여 구현할 인터페이스를 지정 후, 추상 메소드를 모두 오버라이드 하여 기능을 구현해야 한다.
인터페이스 장점 및 사용 이유
☑️ 인터페이스는 협업을 용이하게 한다.
☑️ 변경, 교체에 용이하다. (OCP)
☑️ 다중 상속을 가능하게 한다.
package ex07.ch01;
/*
삼성 리모컨, 엘지 리모컨
기능 : on, off
*/
interface Remocon { // interface는 무조건 public
// 추상 메소드는 무조건 public abstract 임
public abstract void on();//public abstract 이게 회색인 이유 : 생략 가능해서.
void off();
}
class SamsungRemocon implements Remocon {
@Override
public void on() {
System.out.println("삼성 리모컨 ON");
}
@Override
public void off() {
System.out.println("삼성 리모컨 OFF");
}
}
class LGRemocon implements Remocon {
@Override
public void on() {
System.out.println("엘지 리모컨 ON");
}
@Override
public void off() {
System.out.println("엘지 리모컨 OFF");
}
}
public class Inter01 {
static void start(Remocon r) {
r.on();
}
public static void main(String[] args) {
Remocon sam = new SamsungRemocon();
Remocon lg = new LGRemocon();
start(sam);
start(lg);
}
}

Share article