把纸张和墨盒都定义为接口,让以后的实现类去实现它。
package com.jredu.oop.ch03;
/*** 纸张接口* @author Administrator**/
public interface Paper {/*** 纸张*/void paper();}
package com.jredu.oop.ch03;public class A4Paper implements Paper{@Overridepublic void paper() {// TODO Auto-generated method stubSystem.out.println("组装一个A4纸盒");}}
package com.jredu.oop.ch03;public class B5Paper implements Paper {@Overridepublic void paper() {// TODO Auto-generated method stubSystem.out.println("组装一个B5纸盒");}}
package com.jredu.oop.ch03;
/*** 墨盒接口* @author Administrator**/
public interface Ink {/*** 墨盒*/void ink();}
package com.jredu.oop.ch03;public class ColorInk implements Ink{@Overridepublic void ink() {// TODO Auto-generated method stubSystem.out.println("组装一个彩色墨盒");}}
package com.jredu.oop.ch03;public class BlackInk implements Ink{@Overridepublic void ink() {// TODO Auto-generated method stubSystem.out.println("组装一个黑白墨盒");}}
打印类:
package com.jredu.oop.ch03;public class Printer {private Ink ink;//墨盒private Paper paper;//纸张public Printer(Ink ink, Paper paper) {super();this.ink = ink;this.paper = paper;}public void print() {ink.ink();paper.paper();System.out.println("打印机开始工作");}}
测试类:
package com.jredu.oop.ch03;public class PrinterTest {public static void main(String[] args) {ColorInk color=new ColorInk();BlackInk black=new BlackInk();A4Paper a4=new A4Paper();B5Paper b5=new B5Paper();Printer printer=new Printer(black, a4);printer.print();}}