抽象类
1.什么是抽象类?
- 类和类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类。
- 类本身是不存在的,所以抽象类无法创建对象(无法实例化)
2.抽象类属于什么类型?
- 抽象类属于引用类型
3.抽象类怎么定义?
- [修饰符列表] abstract class 类名{}
4.抽象类是无法实例化的,无法创建对象的,所以抽象类是用来被子类继承的。
5.final 和 abstract 不能联合使用
6.抽象类的子类可以是抽象类
7.抽象类虽然无法实例化,但是有构造方法的,不过是供子类使用的( super() )
8.抽象类关联到一个概念:抽象方法
- 抽象方法表示没有实现的方法,没有方法体的方法。如:
public abstract void doSome();
- 特点:没有方法体,以分号结尾。前面修饰符列表中有abstract关键字
9.抽象类中不一定有抽象方法,但是抽象方法一定出现在抽象类中。
10.抽象类是半抽象的,在抽象类中可以写抽象方法,也可以写普通方法.
10.重要结论:*****五颗星
- 一个非抽象的类继承抽象类,必须将抽象类中的抽象方法实现
- 这里的覆盖或者说重写,也可以叫做实现。(对抽象的实现)
- 原因:如果不进行方法覆盖,那么就相当于抽象方法出现在了普通类中,是绝对不允许的。
抽象类有构造方法
public class AbstractTest{
public static void main(String[] args){
Cat c = new Cat();
}
}
abstract class Aniaml{
//有参数构造方法
public Aniaml(int a){
}
}
class Cat extends Aniaml{
}
抽象方法只能出现在抽象类中
public class AbstractTest{
public static void main(String[] args){
}
}
abstract class Aniaml{
//抽象方法
public abstract void move();
}
class Cat extends Aniaml{
//如果不进行方法覆盖
//那么就相当于抽象方法出现在了普通类中,是绝对不允许的
//public void move(){}
}