Package package8; abstract class model {public void model_function () {Step1 (); step2 (); Step3 (); system. Out. println ("finished! ");} Public abstract void Step1 (); public abstract void step2 (); public abstract void Step3 ();} class demo1 extends model {public void Step1 () {system. out. println ("Step 1 method of demo1");} public void step2 () {system. out. println ("Step 1 method of demo1");} public void Step3 () {system. out. println ("Step 1 method of demo1");} class demo2 extends model {public void Step1 () {system. out. println ("Step 1 method of demo2");} public void step2 () {system. out. println ("Step 1 method of demo2");} public void Step3 () {system. out. println ("Step 1 method of demo2") ;}} class test {public static void main (string [] ARGs) {demo1 d1 = new demo1 (); demo2 D2 = new demo2 (); system. out. println ("START instance 1's template-specific method:"); d1.model _ function (); system. out. println ("START instance 2's template-specific method:"); d2.model _ function ();}}
Running result:
Start instance 1's template-specific method: demo1's 1st step method demo1's 2nd step method demo1's 3rd step method finished! Start instance 2's template-specific method: demo2's Step 1 method demo2's Step 2 method demo2's Step 2 method finished!
[Template design mode]