一、概念
在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,当父类的一些方法无法确定时,需要子类继承实现时,可以用abstract修饰,即为抽象类
二、介绍
- 用abstract修饰,即为抽象类,访问修饰符 abstract 类名{ }
- 用abstract关键字来修饰一个方法时,这个方法为抽象方法,访问修饰符 abstract 方法名(参数列表),没有方法体
三、注意事项和细节讨论
- 抽象类不能被实例化
- 抽象类不一定包含abstract方法,也就是抽象类不一定包含abstract方法
- 一旦类包含abstract方法,则这个类必须声明为abstract
- abstract只能修饰类和方法,不能修饰其他
- 抽象类可以有任意成员【抽象类还是类】,比如:非抽象方法、构造器,静态属性等等[举例]
- 抽象方法不能有主体,即不能实现
- 如果一个类继承了抽象类,则他必须实现抽象类的所有抽象方法,除非它自己也声明为abstract类
- 抽象方法不能使用private、final和static来修饰,因为这些关键字都是和重写相违背的