✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】
抽象类体现的就是一种模板模式的设计,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。
韩老师需求:
举个栗子
模板类
package com.dingjiaxiong.abstract_;
/**
* ClassName: Template
* date: 2022/9/3 20:19
*
* @author DingJiaxiong
*/
abstract public class Template { //抽象类
public abstract void job(); //抽象方法
public void calculateTime(){ //实现方法,调用job方法
//开始时间
long start = System.currentTimeMillis();
job(); //动态绑定机制
//结束时间
long end = System.currentTimeMillis();
System.out.println("任务执行时间" + (end - start));
}
}
AA类
package com.dingjiaxiong.abstract_;
/**
* ClassName: AA
* date: 2022/9/3 20:22
*
* @author DingJiaxiong
*/
public class AA extends Template{
@Override
public void job() { //实现抽象方法job
long num = 0;
for (int i = 0; i <= 800000; i++) {
num += i;
}
}
}
BB类
package com.dingjiaxiong.abstract_;
/**
* ClassName: BB
* date: 2022/9/3 20:23
*
* @author DingJiaxiong
*/
public class BB extends Template{
@Override
public void job() { //这里同理
long num = 0;
for (int i = 0; i <= 80000 ; i++) {
num *= i;
}
}
}
测试类
package com.dingjiaxiong.abstract_;
/**
* ClassName: TestTemplate
* date: 2022/9/3 20:23
*
* @author DingJiaxiong
*/
public class TestTemplate {
public static void main(String[] args) {
AA aa = new AA();
aa.calculateTime();
BB bb = new BB();
bb.calculateTime();
}
}
运行结果
