인터페이스 구현(1)
2022. 4. 15. 19:37ㆍjava/java
1) 구현 객체와 구현 클래스
-인터페이스의 추상 메소드에 대한 실체 메소드를 가진 객체 = 구현 객체
-구현 객체를 생성하는 클래스 = 구현 클래스
2)구현 클래스 선언
-자신의 객체가 인터페이스 타입으로 사용할 수 있음을 implements 키워드로 명시
public class 구현클래스명 implements 인터페이스명 {
//인터페이스에 선언된 추상 메소드의 실제 메소드 선언
}
3)추상 메소드의 실체 메소드를 작성하는 방법
-메소드의 선언부가 정확히 일치해야 한다.
-인터페이스의 모든 추상 메소드를 재정의하는 실체 메소드를 작성해야 한다.
(일부만 재정의할 경우, 추상 클래스로 선언해야 하며 abstract 키워드가 붙어야 한다.
-인터페이스의 모든 메소드는 public 접근 제한을 갖기 때문에 public보다 더 낮은 접근 제한으로 작성할 수 없다.
-이클립스의 자동 생성 기능을 이용한다.
-@Override 어노테이션을 이용해서 정확히 재정의되었는지 컴파일러가 체크토록 한다.
인터페이스 객체
package sec03_exam01_name_impliment_class;
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("건전지를 교환합니다.");
}
}
구현 객체
-------------Television 객체--------------------------
package sec03_exam01_name_impliment_class;
public class Television implements RemoteControl {
private int volume;
@Override
public void turnOn() {
System.out.println("TV를 켭니다.");
}
@Override
public void turnOff() {
System.out.println("TV를 끕니다.");
}
@Override
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 볼륨 : " + this.volume);
}
}
---------------------Audio 객체-------------------------------
package sec03_exam01_name_impliment_class;
public class Audio implements RemoteControl {
private int volume;
@Override
public void turnOn() {
System.out.println("Audio를 켭니다.");
}
@Override
public void turnOff() {
System.out.println("Audio를 끕니다.");
}
@Override
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 볼륨 : " + this.volume);
}
}
4)인터페이스 변수와 구현 객체
-인터페이스를 사용하지 않은 경우
Television tv = new Television();
-인터페이스를 사용한 경우
인터페이스 변수 = new 구현객체();
RemoteControl rc;
rc = new Television();
rc = new Audio();
'java > java' 카테고리의 다른 글
인터페이스의 다형성 (0) | 2022.04.19 |
---|---|
인터페이스 구현(2) (0) | 2022.04.15 |
인터페이스 선언 (0) | 2022.04.14 |
인터페이스의 역할 (0) | 2022.04.14 |
Set-HashSet (보완 필요) (0) | 2022.03.26 |