相同的逻辑提取到抽象父类。
父类控制行为,子类进行具体的实现
如果需要拓展,只要继承抽象父类便可。
package com.zhanchenkeji.createDesign;
public abstract class CarModel {
public abstract void start();//启动
public abstract void alarm();//鸣笛
public abstract void engineBoom();//引擎
public abstract void stop();//停止
public void run() {
this.alarm();
this.engineBoom();
this.start();
this.stop();
}
}
//BMW实现类
package com.zhanchenkeji.createDesign;
public class BMW extends CarModel{
@Override
public void start() {
System.out.println("BMO启动了");
}
@Override
public void alarm() {
// TODO Auto-generated method stub
System.out.println("BMO鸣笛");
}
@Override
public void engineBoom() {
// TODO Auto-generated method stub
System.out.println("BMO发动引擎");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("BMO停下了");
}
}
//LYD实现类
package com.zhanchenkeji.createDesign;
public class LYD extends CarModel{
@Override
public void start() {
System.out.println("LYD启动了");
}
@Override
public void alarm() {
// TODO Auto-generated method stub
System.out.println("LYD鸣笛");
}
@Override
public void engineBoom() {
// TODO Auto-generated method stub
System.out.println("LYD发动引擎");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("LYD停下了");
}
}
//测试类
package com.zhanchenkeji.createDesign;
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
BMW bmw = new BMW();
bmw.run();
}
}