抽象类就是在声明类的时候加上abstract关键字。
例如:
public abstract class Xxx {
}
抽象类是不能创建对象的,因为它是抽象的。它是一种模板,是用来被子类继承的,子类在继承时需要实现抽象类中的抽象方法。子类若没有重写全部的抽象方法,仍为抽象类。
抽象方法:在声明方法时加上abstract关键字。
例如:
public abstract void xXxx();
注意,抽象方法是没有方法体的。
抽象类可以实现多态。
例如:A a = new B();
其中A类为抽象类,B类继承A类。这样的好处是可以由抽象类引用操作它的不同子类,使代码具有通用性。不过同时因为多态的副作用,子类特有的属性和方法也被屏蔽掉了。
需要注意的是,抽象类不一定含有抽象方法,而具有抽象方法的类一定是抽象类。
由于抽象类要被子类继承,而final关键字修饰的类不能被继承,因此抽象类不能被fianl关键字修饰。
抽象类属于模板设计模式,抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展、改造,但子类总体上会保留抽象类的行为方式。
by Karl