본문 바로가기

🌱JAVA/🌱 인터페이스 (Interface)

인터페이스 개념 이해하기

# 인터페이스란?

인터페이스란 상호 작용을 위한 표준 규격이라고 이해하면 쉽다.아래의 예시를 보면, 스마트홈 서비스가 있다고 가정하면 가정에서 쓰이는 모든 가전제품은 하나의 시스템으로 연결되어 쌍방향 통신이 이루어 져야 한다. 스마트홈 서버가 가전을 제어하기 위해서는 가전 제품과 홈 서버 사이에는 일종의 표준 규격이 존재 해야한다.자바에서는 이러한 표준 규격을 인터페이스 라고 한다.

# 인터페이스에 대한 개념을 이해한다.

- 인터페이스 구현의 장점?

1. 인터페이그 구현 설계를 통해 보다 명확한 프로그램의 구성이 가능해 진다.

2. 서로다른 객체에게 연관관계를 부여할 수 있다. (업 캐스팅 가능 : 자식 객체를 부모의 타입으로 해석)

 

# 인터페이스의 구현?

- 인터페이스란 일종의 역할을 의미한다. 예를 들어 스마트폰은 전화기, 알람, 메신저 역할을 한다.

각 역할의 기능이 있는데 기능을 세분화 하면 아래와 같이 나눌수 있다.

<Phone>
ㆍcall();
ㆍring();
<Alarm>
ㆍbeep();
ㆍplayMusic();
<Messenger>
ㆍsendMsg();
ㆍreceiveMsg();

# 실제 인터페이스를 정의하면 아래와 같다. (알람 인터페이스를 구현해보자.)

<Alarm>
ㆍbeep();
ㆍplayMusic();

- 인터페이스 생성

interface Alarm {
  public void beep(); // 껍데이만 있는 메소드를 프로토타입 메소드라고 한다.
  public void playMusic();
}

- 해당 인터페이스를 구현

class SmartPhone implements Alarm {
  public void beep() {
    System.out.println("삐비빅");
  }
  public void playMusic() {
    System.out.println("가나다라 마바사");
  }
}