抽象类体现的就是一种模板的设计模式,抽象类作为多个子类的通用模板,子类在抽象的基础上进行拓展、改造,但子类总体上会保留抽象类的行为方式。
解决的问题:
*当功能内部的一部分实现是确定的,另一部分的实现是不确定的。这时可以把不确定的一部分暴露出去,由子类去实现。
*换句话说,在软件中实现一个算法时,整体步骤很固定、通用,这些步骤在父类中写好。但是某些部分是易变的,易变部分抽象出来,供不同子类实现。这就是一种模板模式。
父类:
abstract class Template{
//计算代码运行花费的时间
public void spendTime(){
long start = System.currentTimeMillis();
code();
long end = System.currentTimeMillis();
System.out.println("花费的时间为" + (start - end));
}
public abstract void code();
}
子类
class Printinfo extends Template{
@Override
public void code() {
for(int i = 0;i < 10000;i++){
System.out.println("i = " + i);
}
}
}
测试类
public class TemplateTest {
public static void main(String[] args) {
Template p1 = new Printinfo();
p1.spendTime();
}
}
结果: 花费的时间为-92

379

被折叠的 条评论
为什么被折叠?



