创建CPU的接口:
1 package org.hanqi.pn0120; 2 3 //cpu的接口 4 public interface ICPU { //创建的接口名一般前面加I 5 //接口的关键字 interface 6 //控制 7 public void command(); 8 9 }
创建显卡的接口:
1 package org.hanqi.pn0120; 2 3 public interface IDisplayCard { 4 5 //显示 6 public void display(); 7 }
创建Intel类与ICPU相关联:
1 package org.hanqi.pn0120; 2 3 public class Intel implements ICPU { //相关联的关键字 implements 4 5 @Override 6 public void command() { 7 8 System.out.println("我是Intel的CPU"); 9 } 10 }
创建AMD类与ICPU相关联:
1 package org.hanqi.pn0120; 2 3 public class AMD implements ICPU { 4 5 @Override 6 public void command() { 7 8 System.out.println("我是AMD的CPU"); 9 } 10 }
创建AMD2类与ICPU相关联:
1 package org.hanqi.pn0120; 2 3 public class AMD2 implements ICPU, IDisplayCard { 4 5 @Override 6 public void display() { 7 8 System.out.println("AMD的CPU显卡"); 9 10 } 11 12 @Override 13 public void command() { 14 15 System.out.println("AMD的自带显卡的CPU"); 16 } 17 }
创建AMD3类与ICPU相关联:
1 package org.hanqi.pn0120; 2 3 public class AMD3 extends AMD implements IDisplayCard { 4 5 @Override 6 public void display() { 7 8 System.out.println("继承了AMD的一代CPU,增加了显卡功能"); 9 } 10 }
创建Ati类与IDisplayCard相关联:
1 package org.hanqi.pn0120; 2 3 public class Ati implements IDisplayCard { 4 5 @Override 6 public void display() { 7 8 System.out.println("我是A卡"); 9 10 } 11 }
创建Nivdia类与IDisplayCard相关联:
1 package org.hanqi.pn0120; 2 3 public class Nivdia implements IDisplayCard { 4 5 @Override 6 public void display() { 7 8 System.out.println("我是N卡"); 9 10 } 11 }
最后创建Computer类进行输出运算:
1 package org.hanqi.pn0120; 2 3 public class Computer { 4 5 //品牌 6 private String pinpai; 7 8 //CPU 9 private ICPU cpu; 10 11 //显卡 12 private IDisplayCard displaycard; 13 14 public String getPinpai() { 15 return pinpai; 16 } 17 18 public void setPinpai(String pinpai) { 19 this.pinpai = pinpai; 20 } 21 22 public ICPU getCpu() { 23 return cpu; 24 } 25 26 public void setCpu(ICPU cpu) { 27 this.cpu = cpu; 28 } 29 30 public IDisplayCard getDisplaycard() { 31 return displaycard; 32 } 33 34 public void setDisplaycard(IDisplayCard displaycard) { 35 this.displaycard = displaycard; 36 } 37 38 //运行 39 public void run() 40 { 41 //cpu 42 this.cpu.command(); 43 //显卡 44 this.displaycard.display(); 45 System.out.println("我组装的"+pinpai+"电脑开始运行"); 46 } 47 48 public Computer(String pinpai) 49 { 50 super(); 51 this.pinpai=pinpai; 52 } 53 public static void main(String[] args) 54 { 55 //组装电脑 56 Computer c1 = new Computer("hp"); 57 58 //第一种 59 AMD a1 = new AMD(); 60 c1.setCpu(a1); 61 //第二种 匿名类 new Ati() 62 c1.setDisplaycard(new Ati()); 63 c1.run(); 64 65 System.out.println(); 66 67 Computer c2 = new Computer("华硕"); 68 c2.setCpu(new Intel()); 69 c2.setDisplaycard(new Nivdia()); 70 c2.run(); 71 72 System.out.println(); 73 AMD2 a2 = new AMD2(); 74 Computer c3 = new Computer("acer"); 75 c3.setCpu(a2); 76 c3.setDisplaycard(a2); 77 c3.run(); 78 79 System.out.println(); 80 AMD3 a3 = new AMD3(); 81 Computer c4 = new Computer("acer"); 82 c4.setCpu(a3); 83 c4.setDisplaycard(a3); 84 c4.run(); 85 } 86 }
运行结果为:
附思维导图: