tip:以下是正文部分
一、抽象类的介绍
用abstract 关键字来修饰一个类时,这个类就叫抽象类
访问修饰符 abstract 类名{
}
(2) 用abstract 关键字来修饰一个方法时,这个方法就是抽象方法.
访问修饰符 abstract 返回类型 方法名( 参数列表 ); //没有方法体
二、抽象类细节
1.抽象类不能被实例化
2.抽象类不一定包含abstract方法,但是包含abstract方法则一定是抽象类。
3.一旦类包含abstract方法,则这个类必须声明abstract。
4.abstract只能修饰类和方法,不能修饰属性和其他。
5.抽象类还是类,可以 有任意成员 。( 非抽象方法、构造器、属性 )
6.如果一个类继承了抽象类,则他一定要实现抽象类的所有抽象方法,
除非自身也声明了abstract类。
7.abstract 不能使用private,final,static,因为这些关键字都和重写相违背。
三、抽象模板模式
public class main {
public static void main(String[] args) {
a a = new a();
a.cale();
b b = new b();
b.cale();
}
}
abstract class test{
public abstract void job();
public void cale(){
long start = System.currentTimeMillis();
job();//构成动态绑定机制
long end = System.currentTimeMillis();
System.out.println("任务结束,耗时:" + (end - start));
}
}
class a extends test{
@Override
public void job() {
int sum = 0;
for (int i = 0; i < 100000000; i++) {
sum += i;
}
}
}
class b extends test{
@Override
public void job() {
long ans = 1;
for (int i = 1; i < 10000000; i++) {
ans *= i;
}
}
}