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.8 다중 인터페이스 구현 본문

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

8.8 다중 인터페이스 구현

빌드이너프 2024. 4. 3. 20:07

구현 객체는 여러 개의 인터페이스를 implements 할 수 있다

public class 구현클래스명 implements 인터페이스A, 인터페이스B {
  //모든 추상 메소드 재정의
}

 

인터페이스A와 인터페이스B를 구현한 객체는 두 인터페이스 타입의 변수에 각각 대입될 수 있다

인터페이스A 변수 = new 구현클래스명(...);
인터페이스B 변수 = new 구현클래스명(...);

 

구현 객체가 어떤 인터페이스 변수에 대입되느냐에 따라 변수를 통해 호출할 수 있는 추상 메소드가 결정된다

 

SmartTelevision은 RemoteControl 인터페이스와 Searchable 인터페이스를 모두 구현하였다

package ch08.sec08;

public interface RemoteControl {

	void turnOn();
	void turnOff();
}
package ch08.sec08;

public interface Searchable {
	
	void search(String url);
}
package ch08.sec08;

public class SmartTelevision implements RemoteControl, Searchable {

	@Override
	public void search(String url) {
		System.out.println(url + "을 검색");
	}

	@Override
	public void turnOn() {
		System.out.println("Tv 켬");
	}

	@Override
	public void turnOff() {
		System.out.println("Tv 끔");
	}

}
package ch08.sec08;

public class MultiInterfaceImplExample {
	public static void main(String[] args) {
		RemoteControl rc = new SmartTelevision();
		
		rc.turnOn();
		rc.turnOff();
		
		Searchable searchable = new SmartTelevision();
		searchable.search("https://www.youtube.com");
	}
}
Tv 켬
Tv 끔
https://www.youtube.com을 검색