package com.Abstract3;
public abstract class People {
/*设计模板方法设计模式
* 1.定义一个模板方法出来
*/
public final void write(){
System.out.println("\t\t\t\t\t《我的上司》");
System.out.println("\t\t我的上司好啊,牛逼啊,来看看我的上司有多牛逼");
//2.模板方法并不清楚正文部分到底怎么去写,但是他知道子类肯定要去写
System.out.println(writeMain());
System.out.println("有这样的上司太好了");
}
//3.设计一个抽象方法写正文,具体实现交给子类完成
public abstract String writeMain();
}
Teacher(子类继承People类)
java复制代码
package com.Abstract3;
public class Teacher extends People{
@Override
public String writeMain() {
return "我的上司挺好的,让我待在这里别走,他去买点橘子";
}
}
Student类(子类继承People类)
java复制代码
package com.Abstract3;
public class Student extends People {
@Override
public String writeMain() {
return "我的上司特别牛逼,开车不看红绿灯,下辈子让他做下属";
}
}
Test类(主函数所在)
java复制代码
package com.Abstract3;
//搞清楚抽象类的应用场景,用来设计模板方法设计模式
//场景:学生、老师都要写一篇作文:我的上司
//第一段:一样
//正文部分自由发挥
//最后一段也是一样
public class Test {
public static void main(String[] args) {
Teacher t = new Teacher();
t.write();
Student s = new Student();
s.write();
}
}