使用接口实现打印机功能

  1. 使用接口,将墨盒颜色与纸张规格设置为接口,然后再对具体功能通过实现接口实现。
  2. 定义打印机类,将接口作为属性,通过属性调用该接口的方法。
  3. 定义测试类,查看实现效果。
  • 编写两个接口, 墨盒类与纸张类,设置两个方法,获取墨盒颜色与纸张类型

//墨盒
public interface InkBox {
    /**
     * 获取墨盒
     * @return
     */
    public String getColor();
}

//纸张
public interface Paper {
    /**
     * 获取纸张
     * @return
     */
    public String getPaper();

}

 创建ColorInkBox、BlackInkBx、A4Paper、B5Paper类实现InkBox与Paper接口。

/**
 * 彩色墨盒
 */
public class ColorInkBox implements InkBox {


    @Override
    public String getColor() {
        return "彩色墨盒";
    }
}



/**
 * 黑白墨盒
 */
public class BlackInkBox implements InkBox {
    @Override
    public String getColor() {
        return "黑白墨盒";
    }
}



/**
 * A4纸
 */
public class A4Paper implements Paper {
    @Override
    public String getPaper() {
        return "A4";
    }
}


/**
 * B5纸
 */
public class B5Paper implements Paper {
    @Override
    public String getPaper() {
        return "B5";
    }
}

 创建Printer类,将接口作为属性,通过属性调用该接口的方法。

public class Printer {
    /**
     * \墨盒
     */
    InkBox inkBox;
    /**
     * 纸张
     */
    Paper paper;

    public InkBox getInkBox() {
        return inkBox;
    }

    public void setInkBox(InkBox inkBox) {
        this.inkBox = inkBox;
    }

    public Paper getPaper() {
        return paper;
    }

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

    public Printer(InkBox inkBox, Paper paper){
        super();
        this.inkBox=inkBox;
        this.paper=paper;
    }
    public void print(){
        System.out.println(inkBox.getColor()+"打印机使用"+paper.getPaper()+"打印纸张");
    }
}

 创建测试类

/**
 * 测试类
 */
public class Test {
    public static void main(String[] args) {
        InkBox inkBox = new ColorInkBox();
        Paper paper = new A4Paper();
        Printer printer = new Printer(inkBox, paper);
        printer.print();
        System.out.println("************");
        //inkBox = new BlackInkBox();
        //printer = new Printer(inkBox, paper);
        printer.setInkBox(new BlackInkBox());
        printer.setPaper(new B5Paper());
        printer.print();
    }
}

运行结果

彩色墨盒打印机使用A4打印纸张
************
黑白墨盒打印机使用B5打印纸张

 刚学的接口,使用的还比较生疏,代码写得也不好,望各位大佬多多指教,共同进步!

你可能感兴趣的:(java,接口,面向对象,接口,多态,打印机)