抽象类的由来:
我们在高度抽象一类事物的时候,由于是提取的此类事物公共行为,但具体到某个具体的事物的时候,同一行为又会有不同的表现。所以我们不应该在抽象阶段就给出具体的实现,而只给出方法的声明,也就是不给出方法体,在java中,没有方法体的方法,我们称之为抽象方法,而类中有抽象方法,类就必须声明为抽象类,抽象类由此而来,而且有其存在的必要性。
抽象类特点:
抽象类和抽象方法用 abstract 关键字修饰。
抽象类不能被实例化。(其实可以通过多态的方式实例化)
抽象类除了不能直接实例化外,其它特性都和普通类一样,同样有成员变量,常量,成员方法。而抽象方法是强制子类实现的功能。