抽象类可以定义变量、普通方法、抽象方法、构造方法;普通方法可以有方法体;抽象类的子类必须重写抽象方法,除非子类也是抽象类;子类可以随时调用普通方法,也可以不用;如果抽象类定义了构造方法,子类的构造方法也必须先调用父类的构造方法;抽象类的构造方法和普通类相同;抽象类不可以实例化,如果它的子类重写了抽象方法,可以实例化;