前言
写一写我所了解的Java抽象类。
定义
抽象类也是一种类,不过比较特别在于抽象类不能实例化。
作用
往往抽象类是用作建立一个抽象的模型,作为类的模型,模板。
抽象类在同类对象所对应的类体系中,往往处于最顶层。
结构
1 | abstract class 类名{ |
抽象类的使用是通过由子类继承抽象类来使用其中的成员变量。
类的修饰词
abstract
就是抽象类的关键词。一般我们都知道对于类,变量,方法都有其访问修饰public
,final
和private
(需要注意protect
是不能修饰类的)。那么对于抽象类的修饰词又如何呢。
- 对于
public
抽象类可以使用,这样抽象类可以任意被继承使用。 - 不能使用
final
,因为抽象类必须被继承。 - 只有内部类才能使用
private
,外部类不能使用private
成员变量
成员变量可以在声明同时赋值。
抽象类中的方法
抽象方法在抽象类中不可以实现,只要写出声明,无函数体。
例如:
1 | public abstract void prin(参数); |
抽象类中可以有普通方法,普通方法(非抽象方法)可以实现。
1 | public void prin(参数){...}; |
注意以及总结
- 一旦一个类中存在抽象方法,那么此类必须是抽象类
- 抽象类中不一定所有变量,方法都是
abstract
修饰的 - 抽象方法不可以在抽象类中实现。
- 子类通过继承抽象类来使用抽象类的变量以及方法,以及实现抽象方法(但不是强制的)
- 抽象类必须是要能被继承的,因此不可以由
final
修饰 - 只有内部类可以使用
private
修饰(反正抽象类是个模板,也没必要私有化)