一.抽象类定义
使用了关键词abstract声明的类叫作“抽象类”。
使用了关键词abstract声明的方法叫作“抽象方法”,只要声明,不含方法体。
二.实例
//抽象类
public abstract class Action {
//约束子类必须有什么方法,也就是子类必须进行方法重写
//抽象方法
public abstract void doSomething();
}
//抽象类的所有方法,继承了他的子类,都必须要实现它的方法,除非子类也是抽象的
public class A extends Action{
@Override
public void doSomething() {
}
}
注意点:
- 不能new抽象类,只能靠子类去实现它,子类必须进行方法重写
- 在抽象类中,只声明抽象方法,方法体交给子类来写
- 有抽象方法一定是抽象类,抽象类中也可以写普通方法
- 抽象方法声明后要写;
三.思考
- 抽象类有构造方法吗?
我们运行编译程序,然后找到编译后的文件
我们发现抽象类是有构造器的,也就是说抽象类可以有构造器。
- 抽象类存在的意义
- 在某些情况下,某个父类只是知道其子类应该包含怎样的方法,但无法准确知道这些子类如何实现这些方法(可实现动态多态)。
- 从多个具有相同特征的类中抽象出一个抽象类,以这个抽象类作为子类的模板,从而避免子类设计的随意性。
- 提高开发效率