# 인터페이스 정의 및 구현-2
#### 대략적인 틀을 제공
인터페이스는 특정 역할에 대한 대략적인 틀만 정의합니다. 아래는 Healer 인터페이스의 예입니다.
```
// 힐러 역할
interface Healer {
public void healing(); // 체력 회복
public void shield(); // 보호막 생성
}
```
#### 구체적인 내용을 작성
이제 해당 인터페이스를, 특정 클래스에 부여해보도록 하겠습니다. 이때 사용하는 키워드가 바로 <kbd>implements</kbd> 입니다.
```
// 마법사 클래스에게 Healer 인터페이스를 부여
class Wizard implements Healer { ... }
```
특정 인터페이스를 부여받은 클래스는, 반드시 프로토타입 메소드를 오버라이딩(재정의) 해주어야만 합니다. 인터페이스는 껍데기 메소드로 이루어져있어, 실행될 수 없기 때문입니다. 따라서 아래와 같이 중괄호 내부를 정의해야 합니다.
```
class Wizard implements Healer {
// 메소드 오버라이딩(재정의)
public void healing() {
System.out.println("체력을 회복시킵니다!");
}
// 메소드 오버라이딩(재정의)
public void shield() {
System.out.println("보호막을 생성합니다!");
}
}
```
## 문제
주어진 코드의 Alarm 인터페이스를 SmartPhone 클래스에 구현하고, 출력 예와 같은 결과가 나오도록 코드를 완성하시오.
![클라우드스터딩-자바-인터페이스-정의-구현](https://i.imgur.com/4pRwrhu.png)
## 출력 예
```
삐빕! 삐비비빕~!
[상어송]을 재생합니다..!
```