利用接口实现打印机案例

模拟打印机案例解析

       墨盒:彩色、黑白

       纸张类型:A4、B5

       墨盒和纸张都不是打印机厂商提供的

       打印机的打印功能需要使用兼容市场上的墨盒和纸张

       测试(把纸张和墨盒定义为接口,让以后的实现类去实现它)

package com.oned8z;
/**
* @program: com.oned8z
* @description:
* @author: Mr.Lin
* @create: 2019年7月21日
**/
public interface Paper {
/*
* 纸张
*/
public String paper();
}

package com.oned8z;
/**
* @program: com.oned8z
* @description:A4纸张实现类
* @author: Mr.Lin
* @create: 2019年7月21日
**/
public class A4Paper implements Paper{
@Override
public String paper() {
return "A4";
}

}

package com.oned8z;
/**
* @program: com.oned8z
* @description:B5纸张实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class B5Paoer implements Paper{
@Override
public String paper() {
return "B5";
}


}

package com.oned8z;
/**
* @program: com.oned8z
* @description:墨盒接口
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public interface Ink {
/**
* 墨盒
*/
public String ink();
}

package com.oned8z;
/**
* @program: com.oned8z
* @description:彩色墨盒实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class ColorInk implements Ink{

@Override
public String ink() {
return "彩色";
}

}

package com.oned8z;
/**
* @program: com.oned8z
* @description:黑白墨盒实现类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class BlackInk implements Ink{
@Override
public String ink() {
return "黑白";
}
}

package com.oned8z;
/**
* @program: com.oned8z
* @description:打印类
* @author: Mr.Lin
* @create: 2019年7月22日
**/
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 com.oned8z;
/**
* @program: com.oned8z
* @description:
* @author: Mr.Lin
* @create: 2019年7月22日
**/
public class PrinterTest {
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();
}

}

猜你喜欢

转载自www.cnblogs.com/lpbk/p/11223562.html
今日推荐