인터페이스
작성일
인터페이스
- 미리 메소드를 만들어 놓은 함수
- 인터페이스를 implements하면, 인터페이스 안에있는 모든 메소드를 사용해야만 한다.
- abstract는, 인터페이스와 같지만 부분적으로 메소드를 가져올 수 있다.
interface Alarm {
public void beep();
public void playMusic();
}
class SmartPhone implements Alarm {
public void beep() {
System.out.println("삐삐!");
}
public voide playMusic() {
System.out.println("동해물과 백두산!");
}
}
이렇게 사용하면 된다.
인터페이스를 사용하는 여러이유중 하나는, 생성자를 만들때, 인터페이스로 묶어주거나, 여러타입으로 해석하려고한다.
아래 예시를 보면,
// 스마트폰 객체 생성
SmartPhone sp = new SmartPhone();
// 스마트폰을 다양하게 해석(업캐스팅 - 상위 타입으로 해석)
Alarm a = sp; //스마트폰은 알람이다.(o)
Phone p = sp; //스마트폰은 전화기다.(o)
Messanger m = sp; //스마트폰은 메신저다.(o)
이런식으로 하나의 객체가 다양한 타입으로 해석되서 그렇다.