模板
一个流程 一个体系 如果使用这个流程或者体系 只需修改其中的一小部分 大部分不需要动
下面举个例子:一个公司的找人流程
public class Demo01 {
public static void main(String[] args) {
LOStudy lsk= new LSK();
lsk.study();
}
}
abstract class LOStudy{
//学习方法
public void study() {
System.out.println("报名应聘");
//选择学科需要变化 声明一个方法
//调用抽象方法
chooseSubject();
System.out.println("上岗工作");
}
//声明抽象方法
public abstract void chooseSubject();
}
class LSK extends LOStudy{
//重写父类的抽象方法
@Override
public void chooseSubject() {
// TODO Auto-generated method stub
System.out.println("应聘开发工程师");
}
}
class PQ extends LOStudy{
//重写父类的抽象方法
@Override
public void chooseSubject() {
// TODO Auto-generated method stub
System.out.println("测试员");
}
}
报名应聘和上岗工作都是不需要动的流程
而求职者选择的工作不一样 所以只需要修改应聘的职位就可以了
模板运用了抽象类 和 继承
可以说模板和抽象类很相似
接口
狭义的:Java的接口 定义方式: