충분히 쌓여가는
8.4 추상 메소드 - public abstract 본문
인터페이스는 구현 클래스가 재정의해야 하는 public 추상 메소드를 멤버로 가질 수 있다
추상 메소드는 return 타입, 메소드명, 매개변수만 기술되고 중괄호{}를 붙이지 않는 메소드를 말한다
public abstract를 생략하더라도 컴파일 과정에서 자동으로 붙게 된다
public abstract 리턴타입 메소드명(매개변수, ...);
예제
package ch08.sec04;
public interface RemoteControl {
int MAX_VOLUME = 10;
int MIN_VOLUME = 10;
void turnOn();
void turnOff();
void setVolume(int volume);
}
package ch08.sec04;
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(this.volume);
}
}
구현 클래스에서 추상 메소드를 재정의할 때 주의할 점
!인터페이스의 추상 메소드는 기본적으로 public 접근 제한을 갖기 때문에 public보다 더 낮은 접근 제한으로 재정의할 수 없다
그래서 재정의되는 메소드에는 모두 public이 추가되어 있다
'이것이 자바다 > 08 인터페이스' 카테고리의 다른 글
8.7 private 메소드 - private 메소드, private 정적 메소드 (0) | 2024.04.03 |
---|---|
8.6 정적 메소드 (0) | 2024.04.03 |
8.5 디폴트 메소드 (0) | 2024.04.03 |
8.3 상수 필드 - public static final (0) | 2024.04.03 |
이것이 자바다 8장 확인 문제 (0) | 2024.02.04 |