import java.util.Scanner;
//abstract:为类中添加这个修饰符,就变成抽象类
public abstract class Main {
//假如这个方法只是一个约束,只是想有人帮我们实现,我们自己不写代码,那我们把他写成抽象方法就可以了
//抽象方法只有方法名,没有方法实现
public abstract void doSom();
}
//抽象类所有的方法,继承了它的子类,都必须要实现它的方法,除非继承他的子类也是抽象类,那这些方法就是他的子类的子类去实现这些方法了
class A extends Main{
//当我们继承的抽象类中有抽象方法时,那我们是必须要实现抽象方法
public void doSom(){
}
}
/*1.不能new这个抽象类,只能靠子类去实现他:约束!
2.抽象类中可以定普通方法
3.抽象方法必须写在抽象类中
抽象的抽象:约束!
思考:1.抽象类不能new 那有没有构造器
2.抽象类存在的意义!
把常用的代码抽象出来,提高开发的效率。
*/
package com.de.模板方法;
/*
* 抽象类的应用:模板方法的设计模式
*/
public class SasrTest {
public static void main(String[] args) {
Udhgh t=new Udhgh();
t.spunr();
}
}
abstract class Tsd{
//计算某部分代码要花费的时间
public void spunr() {
long stat=System.currentTimeMillis();//代码运行的时间
this.cpde();//调用下面的抽象方法,这个是不确定的部分易变的部分
long em=System.currentTimeMillis();//调完方法以后的时候
System.out.println("花费的时间为"+(em-stat));
}
//但是不确定要获取那一部分代码,所以把这个方法设抽象方法
public abstract void cpde();
}
class Udhgh extends Tsd{
@Override
public void cpde() {
for (int i = 2; i < 1000; i++) {
boolean isFd=true;
for (int j = 2; j <=Math.sqrt(j); j++) {
if (i%j==0) {
isFd=false;
break;
}
}
if (isFd) {
System.out.println(i);
}
}
}
}