抽象類和介面-開發印表機案例
阿新 • • 發佈:2018-12-04
1 package com.ketang.print; 2 3 /** 4 * 紙張介面 5 * @author 6 * 7 */ 8 public interface Paper { 9 String getSize(); 10 }
1 package com.ketang.print; 2 3 /** 4 * A4紙張 5 * @author 6 * 7 */ 8 public class A4Paper implements Paper{ 9 10 public String getSize() { 11 return"A4"; 12 } 13 14 }
1 package com.ketang.print; 2 3 /** 4 * B5紙張 5 * @author 6 * 7 */ 8 public class B5Paper implements Paper { 9 10 public String getSize() { 11 return "B5"; 12 } 13 }
1 package com.ketang.print; 2 /** 3 * 墨盒介面 4 * @author 5 *6 */ 7 public interface InkBox { 8 9 //獲得顏色 10 String getColor(); 11 }
1 package com.ketang.print; 2 3 /** 4 * 彩色墨盒 5 * @author 6 * 7 */ 8 public class ColorInkBox implements InkBox { 9 10 public String getColor() { 11 return "彩色"; 12 } 13 14 }
1package com.ketang.print; 2 3 /** 4 * 黑白墨盒 5 * @author 6 * 7 */ 8 public class GrayInkBox implements InkBox { 9 10 public String getColor() { 11 return "黑白"; 12 } 13 14 }
1 package com.ketang.print; 2 3 /** 4 * 印表機 5 * @author 6 * 7 */ 8 public class Printer { 9 InkBox inkBox; 10 Paper paper; 11 12 public InkBox getInkBox() { 13 return inkBox; 14 } 15 16 public void setInkBox(InkBox inkBox) { 17 this.inkBox = inkBox; 18 } 19 20 public Paper getPaper() { 21 return paper; 22 } 23 24 public void setPaper(Paper paper) { 25 this.paper = paper; 26 } 27 28 public void print() { 29 System.out.println("你使用的是"+inkBox.getColor()+"墨盒和"+paper.getSize()+"紙張列印"); 30 } 31 32 }
1 package com.ketang.print; 2 3 public class Test { 4 5 public static void main(String[] args) { 6 Printer printer=new Printer(); 7 8 printer.setInkBox(new ColorInkBox()); 9 printer.setPaper(new A4Paper()); 10 printer.print(); 11 12 printer.setInkBox(new GrayInkBox()); 13 printer.setPaper(new B5Paper()); 14 printer.print(); 15 16 } 17 18 }