package Exam;

import java.util.*;

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

interface Printable1 {
    void print(String document);
}

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

class FaxMachine1 extends OutputDevice1 implements Printable1 {
    FaxMachine1() { 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();

        Printable1 device;
        OutputDevice1 info;

        if (sel == 1) { device = new Printer1(); info = (OutputDevice1) device; }
        else          { device = new FaxMachine1(); info = (OutputDevice1) device; }

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

        sc.close();
    }
}
