Notice
Recent Posts
Recent Comments
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

8.4 추상 메소드 - public abstract 본문

이것이 자바다/08 인터페이스

8.4 추상 메소드 - public abstract

빌드이너프 2024. 4. 3. 09:12

인터페이스는 구현 클래스가 재정의해야 하는 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이 추가되어 있다