충분히 쌓여가는
8.8 다중 인터페이스 구현 본문
구현 객체는 여러 개의 인터페이스를 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을 검색
'이것이 자바다 > 08 인터페이스' 카테고리의 다른 글
8.9 인터페이스 상속 (0) | 2024.04.03 |
---|---|
8.7 private 메소드 - private 메소드, private 정적 메소드 (0) | 2024.04.03 |
8.6 정적 메소드 (0) | 2024.04.03 |
8.5 디폴트 메소드 (0) | 2024.04.03 |
8.4 추상 메소드 - public abstract (0) | 2024.04.03 |