package com.jinzy.ibm; public abstract class Car { SetCarEngine setCarEngine; public abstract void setEngine(); } package com.jinzy.ibm; public class Truck extends Car{ public Truck(SetCarEngine setCarEngine) { this.setCarEngine = setCarEngine; } public void setEngine() { System.out.print("Set Truck Engine: "); setCarEngine.setEngine(); } } package com.jinzy.ibm; public interface SetCarEngine { public void setEngine(); } package com.jinzy.ibm; public class setCarEngine1500CC implements SetCarEngine{ public void setEngine() { System.out.println("1500cc"); } }