- 使用接口,将墨盒颜色与纸张规格设置为接口,然后再对具体功能通过实现接口实现。
- 定义打印机类,将接口作为属性,通过属性调用该接口的方法。
- 定义测试类,查看实现效果。
-
编写两个接口, 墨盒类与纸张类,设置两个方法,获取墨盒颜色与纸张类型
//墨盒
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打印纸张
刚学的接口,使用的还比较生疏,代码写得也不好,望各位大佬多多指教,共同进步!