Works with dependency inversion, which states that low level objects should not depend on high level objects Mainly used when objects follow a given sequence to perfom a task but the tasks are implemented differently in every object
//the abstract class, note that the manufacture function calls the abstract methods
public abstract class GeneralManufacturingProcess {
public abstract void assembly();
public abstract void test();
public abstract void pack();