笔记:

/** 关键字abstract  ,实现抽象类,相当于给出类的大纲,子类只管继承,但抽象类不可被实例化!
* 1.抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写所有的抽象方法.
*
* 2.abstract模板方法设计模式--
* 抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展/改造,
* 但子类在总体上会保留抽象类的行为方式.
*/

代码:

package Coding;

public class Main_of_Coding {  //TestAbstract
public static void main(String[] args) {
new SubTemple().spendtime(); //[abstract类实现]打印1000以内的所有素数并输出时间
}
}
abstract class Temple{
public abstract void code(); //这个方法抽象,需要重写
public void spendtime(){ //这个方法不抽象,不用重写
long start =System.currentTimeMillis();
this.code();
long end=System.currentTimeMillis();
System.out.print("cost time is: "+ (end-start));
}
}
class SubTemple extends Temple{
@Override
public void code() {
boolean f=false;
for(int i=2;i<=1000;i++){
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
f=true;
break;
}
}
if(!f){
System.out.print(" "+i);
if(i%10%7==0) System.out.println();
}
f=false;
}
}
}

结果:   (最后一位为7的话自动换行)

 2 3 5 7
11 13 17
19 23 29 31 37
41 43 47
53 59 61 67
71 73 79 83 89 97
101 103 107
109 113 127
131 137
139 149 151 157
163 167
173 179 181 191 193 197
199 211 223 227
229 233 239 241 251 257
263 269 271 277
281 283 293 307
311 313 317
331 337
347
349 353 359 367
373 379 383 389 397
401 409 419 421 431 433 439 443 449 457
461 463 467
479 487
491 499 503 509 521 523 541 547
557
563 569 571 577
587
593 599 601 607
613 617
619 631 641 643 647
653 659 661 673 677
683 691 701 709 719 727
733 739 743 751 757
761 769 773 787
797
809 811 821 823 827
829 839 853 857
859 863 877
881 883 887
907
911 919 929 937
941 947
953 967
971 977
983 991 997
cost time is: 30
05-06 00:56