JAVA基础复习-抽象类和抽象方法使用方式:模板方法设计模式示例

利用抽象类结合抽象方法,实现一种设计模块:模板方法设计模式,这其中也充分应用了多态的思想,示例如下,

package com.winson.OOP;

/**
 * @description:抽象类和抽象方法使用方式:模板方法设计模式示例
 * @date: 2020/7/9 22:30
 * @author: winson
 */
public class TemplateTest {
    public static void main(String[] args) {
        SubTemplate subTemplate = new SubTemplate();
        //子类调用父类的方法,而spendTime()中又调用了code()抽象方法,因为SubTemplate类重写了code()方法,
        // 所以subTemplate类调用了spendTime()方法,而且调用了自己重写的抽象方法;
        subTemplate.spendTime();
    }
}

abstract class Template {
    //抽象方法
    public abstract void code();

    //普通方法:计算某段代码话费的时间
    public void spendTime() {
        long startTime = System.currentTimeMillis();

        //不确定的部分、易变的部分
        this.code();

        long endTime = System.currentTimeMillis();

        System.out.println("花费的时间为:" + (endTime - startTime));
    }
}

class SubTemplate extends Template {

    @Override
    public void code() {
        //筛选1000以内的质数
        for (int i = 2; i <= 1000; i++) {
            boolean isFlag = true;
            for (int j = 2; j < Math.sqrt(i); j++) {
                if (i % j == 0) {
                    isFlag = false;
                    break;
                }
            }
            if (isFlag) {
                System.out.println(i);
            }
        }
    }
}



posted @ 2020-07-09 22:49  温森  阅读(170)  评论(0编辑  收藏  举报