인터페이스란
인터페이스란??
- 역할을 부여하는 것
- 추상 메소드로 구현
- 추상 메소드란, 중괄호 내부가 없는 껍데기 메소드
- 실생활 예시로써 스마트폰은 알람, 전화기, 메신저의 역할을 한다
인터페이스의 정의 및 구현
interface NAME {
}
- 코드 예
- Alarm 인터페이스, beep 메소드와, playMusic이라는 추상메소드가 있다
interface Alarm {
public void beep();
public void playMusic();
}
- 인터페이스 구현을 선언
- 위 인터페이스 클래스를 구현, 이를 위해선 implements 키워드 사용
class SmartPhone implements Alarm {
}
- 추상 메소드 오버라이딩
- Alarm 인터페이스의 모든 추상 메소드를 재정의(오버라이딩)해야 한다.
class SmartPhone implements Alarm {
public void beep() {
System.out.println("삐~ 삐삑, 삐비비빅!");
}
public void playMusic() {
System.out.println("아침 해가 빛나는~ 끝이 없는 바닷가!");
}
}
인터페이스의 장점
- 프로그램 설계의 명확성
- 관계성 부여
- 서로 다른 객체들이 같은 인터페이스를 구현하면, 인터페이스를 타입으로 하여 업캐스팅 할 수 있다.
- 다형성
- 여러 인터페이스를 구현하게 함으로써, 한 객체 타입을 여러 타입으로 해석할 수 있게 된다.