为什么需要抽象类
当父类的某些方法,需要声明,但是又不确定如何实现时,就可以将其声明为抽象方法,那么这个类就是抽象类。当一个类存在抽象方法时,就要将该方法声明为抽象类。一般来说,抽象类会被继承,由其子类来实现
细节
- 抽象类是不能被实例化的
- 抽象类不一定要包含abstract方法,可以实现方法
- abstract只能修饰类和方法
- 抽象类还是类,可以拥有任意成员
- 抽象方法不能有主体
public abstract void eat();
,不能有{}
- 如果一个类继承了抽象类,则它必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
- 抽象方法不能使用private、final、static来修饰,这些关键词与重写相违背
模板设计模式
package abstract_;
public class Demo {
public static void main(String[] args) {
new D().job();
new A().job();
}
}
class D{
public void job(){
long num = 0;
long statr = System.currentTimeMillis();
for (int i = 0; i < 800000; i++) {
num += i;
}
long end = System.currentTimeMillis();
System.out.println(end - statr);
}
}
class A{
public void job(){
long num = 0;
long statr = System.currentTimeMillis();
for (int i = 0; i < 800000; i++) {
num += i;
}
long end = System.currentTimeMillis();
System.out.println(end - statr);
}
}
这种方式写,代码复用性不高
解决方案
抽象出A类和D类的相同的代码,抽象出模板类