안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
개발 코드가 인터페이스의 메서드를 호출하면 인터페이스는 객체의 메서드를 호출합니다.
인터페이스의 구현 객체 : 인터페이스에서 정의된 추상 메서드와 동일한 메서드 이름, 매개 타입, 리턴 타입을 가진 실체 메서드를 가지고 있어야 합니다.
구현 클래스 : 구현 객체를 생성하는 클래스
구현 클래스
클래스 선언부에 implements 키워드를 추가하고 그뒤에 인터페이스명을 명시해야 합니다.
ex) public class 구현클래스명 implements 인터페이스명 {
//인터페이스에 선언된 추상 메서드의 실체 메서드 선언 =>필수
}
예제를 보겠습니다.
아래 예제는 Television 과 Audio 라는 이름을 가진 RemoteControl의 구현 클래스를 작성하는 방법을 보여 주는 예제입니다.
인터페이스
public interface RemoteControl {
//상수
int MAX_VOLUME = 10;
int MIN_VOLUME = 0;
//추상 메소드
void turnOn();
void turnOff();
void setVolume(int volume);
//디폴트 메소드
default void setMute(boolean mute) {
if(mute) {
System.out.println("무음 처리합니다.");
} else {
System.out.println("무음 해제합니다.");
}
}
//정적 메소드
static void changeBattery() {
System.out.println("건전지를 교환합니다.");
}
}
구현 클래스1
public class Television implements RemoteControl {
//필드
private int volume;
//turnOn() 추상 메소드의 실체 메소드
public void turnOn() {
System.out.println("TV를 켭니다.");
}
//turnOff() 추상 메소드의 실체 메소드
public void turnOff() {
System.out.println("TV를 끕니다.");
}
//setVolume() 추상 메소드의 실체 메소드
public void setVolume(int volume) {
if(volume>RemoteControl.MAX_VOLUME) {
this.volume = RemoteControl.MAX_VOLUME;
} else if(volume<RemoteControl.MIN_VOLUME) {
this.volume = RemoteControl.MIN_VOLUME;
} else {
this.volume = volume;
}
System.out.println("현재 TV 볼륨: " + volume);
}
}
구현 클래스2
public class Audio implements RemoteControl {
//필드
private int volume;
//turnOn() 추상 메소드의 실체 메소드
public void turnOn() {
System.out.println("Audio를 켭니다.");
}
//turnOff() 추상 메소드의 실체 메소드
public void turnOff() {
System.out.println("Audio를 끕니다.");
}
//setVolume() 추상 메소드의 실체 메소드
public void setVolume(int volume) {
if(volume>RemoteControl.MAX_VOLUME) {
this.volume = RemoteControl.MAX_VOLUME;
} else if(volume<RemoteControl.MIN_VOLUME) {
this.volume = RemoteControl.MIN_VOLUME;
} else {
this.volume = volume;
}
System.out.println("현재 Audio 볼륨: " + volume);
}
}
'자바' 카테고리의 다른 글
JAVA 자바 인터페이스 사용 추상 메서드 사용, 디폴트 메서드 사용, 정적 메서드 사용 (0) | 2017.03.13 |
---|---|
JAVA 자바 인터페이스 구현 익명 구현 객체와 다중 인터페이스 구현 클래스 (0) | 2017.03.13 |
JAVA 자바 추상 메서드 선언, 디폴트 메서드 선언, 정적 메서드 선언 (0) | 2017.03.13 |
JAVA 자바 인터페이스의 역할과 선언,상수 필드 선언 (0) | 2017.03.13 |
JAVA 자바 추상 메서드와 오버라이딩 (0) | 2017.03.12 |