package class9_2_CurrencyFactory_inClass.currency; //CurrencyMaker - an abstract class public abstract class CurrencyMaker { protected String name ; protected String substrate ; protected String frontImprint; protected String backImprint ; // Methods common to all concrete subclasses can be given // implementation in the abstract class public void getSupplies ( ) { System.out.println( "Getting : " + substrate + " for the " + name ) ; } public void ship ( ) { System.out.println( " Shipping the " + name ) ; } // Methods specific to subclasses are declared abstract here public abstract void makeCurrency(); /** Describe the product this factory produces */ public abstract String getProductName(); }