1.将功能定义模板方法,放在抽象类中,其中只定义通用且能确定的代码。
2.模板方法中不能决定的功能定义成抽象方法,具体让子类来实现。
使用场景:系统功能中有大部分功能一样,其中只有少数一些功能不同,用模板方法,提高代码的复用性。
//模板方法定义 package model_Abstract; public abstract class student { public void weite(){ System.out.println("我的爸爸"); System.out.println("来说说我的爸爸:"); /*因为正文部分所要完成的内容子类都有所不同,将这个位置的内容定义成抽象的方法 * 交给具体的子类来完成*/ System.out.println(write()); System.out.println("我的爸爸真是好爸爸!"); } public abstract String write(); }
package model_Abstract; public class student_middle extends student{ @Override public String write() { return "我的爸爸能单手开摩托车"; } }
package model_Abstract; public class student_samll extends student{ @Override public String write() { return "我的爸爸会骑自行车"; } }
package model_Abstract; public class Test { public static void main(String[] args) { System.out.println("中学的作文内容:"); student_middle S1 = new student_middle(); S1.weite(); System.out.println("================================"); System.out.println("小学生的作文内容:"); student_samll S2 = new student_samll(); S2.weite(); } }