package CHAPTER07;
 
interface RemoteControl { // 전자기기 제어 인터페이스
    void powerOn();   
    void powerOff();  
    void volumeUp();  
    void volumeDown(); 
}

// TV 클래스 (RemoteControl 인터페이스 구현)
class TV implements RemoteControl {
    @Override
    public void powerOn() {
        System.out.println("TV 전원이 켜졌습니다.");
    }

    @Override
    public void powerOff() {
        System.out.println("TV 전원이 꺼졌습니다.");
    }

    @Override
    public void volumeUp() {
        System.out.println("TV 볼륨을 올렸습니다.");
    }

    @Override
    public void volumeDown() {
        System.out.println("TV 볼륨을 내렸습니다.");
    }
}

// 에어컨 클래스 (RemoteControl 인터페이스 구현)
class AirConditioner implements RemoteControl {
    @Override
    public void powerOn() {
        System.out.println("에어컨이 켜졌습니다.");
    }

    @Override
    public void powerOff() {
        System.out.println("에어컨이 꺼졌습니다.");
    }

    @Override
    public void volumeUp() {
        System.out.println("에어컨의 바람 세기를 증가시켰습니다.");
    }

    @Override
    public void volumeDown() {
        System.out.println("에어컨의 바람 세기를 감소시켰습니다.");
    }
}

public class C7_03_InterfaceRemote {
    public static void main(String[] args) {
        // TV 객체 생성 및 조작 (인터페이스 타입 활용)
        RemoteControl tv = new TV();
        tv.powerOn();
        tv.volumeUp();
        tv.volumeDown();
        tv.powerOff();

        System.out.println(); 

        // 에어컨 객체 생성 및 조작 (인터페이스 타입 활용)
        RemoteControl ac = new AirConditioner();
        ac.powerOn();
        ac.volumeUp();
        ac.volumeDown();
        ac.powerOff();
    }
}
