1、什么是抽象类?
- 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。
- 类本身是不存在的,所以抽象类无法创建对象《无法实例化》
- 抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的
- final和abstract不能联合使用,这两个关键字是对立的。
- 抽象类的子类可以是抽象类
- 抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。
2、抽象类怎么定义?
//语法:
[修饰符列表] abstract class 类名{
类体;
}
3、什么是抽象方法?
- 抽象方法表示没有实现的方法,没有方法体的方法。例如:
public abstract void dosome();
- 特点1:没有方法体,以分号结尾。
- 特点2:前面修饰符列表中有abstract 关键字
- 特点3:抽象类中可以没有抽象方法,但是抽象方法必须在抽象类当中
- 重点:一个非抽象类继承抽象类,必须实现(重写/覆盖)抽象类中的抽象方法
abstract class Animal{
public abstract void move();
}
class Bird extends Animal{
//需要将从父类中继承过来的抽象方法进行覆盖/重写,或者也可以叫做“实现”,否则编译报错
public void move(){
}
}
4、总结
- 抽象类怎么定义?在class前添加abstract关键字即可
- 抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
- final和abstract不能联合使用,这两个关键字是对立的。
- 抽象类的子类可以是抽象类,亦可以是非抽象类。
- 抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供子类使用的。
- 抽象类中不一定有抽象方法,抽象方法必须出现在抽象类当中。
- 抽象方法怎么定义? public abstract void dosome();
- 一个非抽象的类,继承抽象类,必须将抽象类中的方法进行覆盖/重写/实现。