抽象的:就是无法具体描述的,即不能实例化。
抽象类定义格式:
abstract class 类名{
}
抽象方法的格式:
修饰符 abstract 返回值类型 方法名();//因为是抽象的,不能具体描述,所以没有方法体,以分号结束。abstract写在返回值类型前面,public static之后。
抽象类的特点:
抽象类不一定有抽象方法,但抽象方法一定是在抽象类中。
抽象类不能实例化(因为抽象的东西不能具体描述)。
抽象类的子类特点:
要么是抽象类(因为如果父类中有抽象方法,那么子类继承了这些抽象方法就必须得满足子类是抽象类,但是一般不把子类定义为抽象类,因为希望使用实例对象)
要么是在子类中对父类的所有抽象方法进行重写。(如果子类不定义为抽象类,那么就要对父类中的抽象方法进行重写,这样子类中就没有抽象方法了,子类就可以不是抽象类了)
抽象类成员的特点:
成员方法:可以有抽象方法,也可以有非抽象方法。
非抽象方法:子类继承,提高了代码的复用性。
抽象方法:它存在的意义是对子类做了一定的约束(要求她重写抽象方法)
构造方法:抽象类中也有构造方法,
抽象类不能实例化为什么还会有构造方法?
答:因为在子类中创建对象时需要对父类的成员变量初始化,所以抽象类中也是存在构造方法的,给子类构造方法调用。
成员变量:有
成员常量:有