package Exam;

import java.util.*;

abstract class OutputDevice {
    protected String deviceName;
    OutputDevice(String deviceName) { this.deviceName = deviceName; }
    void displayDevice() {
        System.out.println("출력 장치: " + deviceName);
    }
}

interface Printable {
    void print(String document);
}

class Printer extends OutputDevice implements Printable {
    Printer() { super("프린터"); }
    public void print(String document) {
        System.out.println("프린터로 문서를 출력합니다: " + document);
    }
}

class FaxMachine extends OutputDevice implements Printable {
    FaxMachine() { super("팩스"); }
    public void print(String document) {
        System.out.println("팩스로 문서를 전송합니다: " + document);
    }
}

public class C7_Pro05_Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.print("출력 장치를 선택하세요 (1. 프린터 / 2. 팩스): ");
        int sel = Integer.parseInt(sc.nextLine().trim());

        System.out.print("문서명을 입력하세요: ");
        String doc = sc.nextLine();

        Printable device;
        OutputDevice info;

        if (sel == 1) { device = new Printer(); info = (OutputDevice) device; }
        else          { device = new FaxMachine(); info = (OutputDevice) device; }

        info.displayDevice();
        device.print(doc);

        sc.close();
    }
}
