1、抽象类概述

    • 一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类

    2、抽象类的特点

    • 抽象类和抽象方法必须使用abstract关键字修饰
      • public abstract class Animal {}
      • public abstract void eat();
    • 抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类
    • 抽象类不能被实例化
      • 可以参照多态进行实例化,通过子类对象进行实例化,这叫抽象类多态
      • Animal a = new Cat();
    • 抽象类的子类
      • 要么重写抽象类中的所有抽象方法
      • 要么是抽象类

    3、抽象类的成员特点

    • 成员变量
      • 可以是变量
      • 也可以是常量 final
    • 构造方法
      • 有构造方法,但是不能实例化
      • 构造方法的作用是用于子类访问父类数据的初始化
    • 成员方法
      • 可以有抽象方法:限定子类必须完成某些动作
      • 也可以有非抽象方法:通过继承提高代码的复用性