package com.example.demo02;
/**
* 组装车
* @author Guardian
*
*/
public abstract class MakeCar {
//组装车头
public abstract void makeHead();
//组装车身
public abstract void makeBody();
//组装车尾
public abstract void makeTail();
/**
* 模板方法
*/
public void make(){
this.makeHead();
this.makeBody();
this.makeTail();
}
}
package com.example.demo02;
public class MakeBus extends MakeCar {
@Override
public void makeHead() {
System.out.println("bus:组装车头");
}
@Override
public void makeBody() {
System.out.println("bus:组装车身");
}
@Override
public void makeTail() {
System.out.println("bus:组装车尾巴");
}
}
package com.example.demo02;
public class MakeJeep extends MakeCar {
@Override
public void makeHead() {
System.out.println("jeep:组装车头");
}
@Override
public void makeBody() {
System.out.println("jeep:组装车身");
}
@Override
public void makeTail() {
System.out.println("jeep:组装车尾");
}
}
package com.example.demo02;
import org.junit.Test;
public class MainClass {
@Test
public void test01() {
MakeCar bus = new MakeBus();
bus.make();
System.out.println("------------------------------------------------");
MakeCar jeep = new MakeJeep();
jeep.make();
}
}