package test;
public class TestAggregation{
public static void main(String[]args){
CPU cpu = new CPU();
Computer c = new Computer();
c.setCPU(cpu);
c.powerOn();
Computer2 c2 = new Computer2();
c2.powerOn();
c2 = null;
}
}
class CPU{
public void run(){
System.out.println("cpu running...");
}
public void other(){
}
}
//组合复用
class Computer2{
private CPU cpu;
public Computer2(){
cpu = new CPU();
}
public void powerOn(){
System.out.println("power on....");
cpu.run();
}
}
//聚合复用
class Computer{
private CPU cpu;
public void setCPU(CPU cpu){
this.cpu = cpu;
}
public void powerOn(){
System.out.println("power on....");
cpu.run();
}
/*
public void other(){
cpu.other;
}
*/
}
//继承复用 一般用于制定规则,单纯的代码复用,大多使用聚合和组合就OK
class Computer1 extends CPU{
public void powerOn(){
System.out.println("power on....");
run();
}
}