当父类的某些方法,需要声明,但是又不确定如何实现时,就可以将其声明为抽象方法,那么这个类就是抽象类。当一个类存在抽象方法时,就要将该方法声明为抽象类。一般来说,抽象类会被继承,由其子类来实现
细节- 抽象类是不能被实例化的
- 抽象类不一定要包含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类的相同的代码,抽象出模板类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)