用接口实现打印机打印功能

package JUL.JUL.JUL18;

public interface Paper {
    public String paper();
}
Paper 接口
package JUL.JUL.JUL18;

public class A4Paper implements Paper {
    @Override
    public String paper() {
        return "A4";
    }
}

package JUL.JUL.JUL18;

public class B5Paper implements Paper {
    @Override
    public String paper() {
        return "B5";
    }
}
Paper 实现类
package JUL.JUL.JUL18;

public interface Ink {
    public String ink();
}
墨盒接口
package JUL.JUL.JUL18;

public class ColorInk implements Ink{
    @Override
    public String ink() {
        return "彩色";
    }
}

package JUL.JUL.JUL18;

public class GrayInk implements Ink {
    @Override
    public String ink() {
        return "黑白";
    }
}
实现墨盒接口类
package JUL.JUL.JUL18;

public class Printer {
    private String ink;
    private String paper;

    public void setPaper(String paper) {
        this.paper = paper;
    }

    public String getInk() {
        return ink;
    }

    public String getPaper() {
        return paper;
    }

    public void setInk(String ink) {
        this.ink = ink;
    }

    public void dayin(){
        System.out.println(""+this.getInk()+"打印机打印"+this.getPaper()+"纸张");
    }
}
打印机类
package JUL.JUL.JUL18;

import java.util.Collections;

public class TestPrinter {
    public static void main(String[] args) {
        A4Paper a4Paper = new A4Paper();
        ColorInk colorInk = new ColorInk();
        Printer printer = new Printer();

        printer.setInk(colorInk.ink());
        printer.setPaper(a4Paper.paper());
        printer.dayin();
    }
}
测试类