什么是抽象类
抽象类是指在类的声明前加上abstract关键字修饰的类。
抽象类可以包含常规类能够包含的任何东西,这包括构造方法,因为子类可能需要调用这种构造方法。抽象类可以包含抽象方法,即方法声明前用abstract修饰的。抽象方法只有方法的声明没有方法体(方法实现)。非抽象的方法可以有方法体。抽象方法将在子类中被实现。抽象类中可以有非抽象的方法,但是不能在非抽象类中声明抽象方法。一个类除抽象方法外什么都没有,则这个类被声明为接口最合适。
为什么要声明抽象类呢
第一:抽象类是类层次中较高层次的概括,抽象类的作用是让其他类来继承它的抽象化的特征。
第二:在抽象类中可以包括被它的所有子类共享的公共行为。
第三:抽象类可以包括被它的所有子类共享的公共属性。
第四:在程序中不能使用抽象类作为模板来创建对象。
第五:在用户生成实例时强迫用户生成更具体的实例,保证代码的安全性。
总结说来呢,如果对象是类的具体化,类是对象的概括化,抽象化的话,那么普通类就是抽象类的具体化,抽象类是普通类的概括化,抽象化。和对象与类一样,抽象类自然也包括了所有类的的公共属性和方法,但如果把方法声明为抽象的,这就相当于强制实现类必须实现。
抽象方法和抽象类的声明
抽象类的声明语法:
public abstract class 类名{ }
抽象方法的声明语法:
public abstract(…);