是的,抽象类可以具有构造函数。考虑一下:
abstract class Product { int multiplyBy; public Product( int multiplyBy ) { this.multiplyBy = multiplyBy; } public int mutiply(int val) { return multiplyBy * val; }}class TimesTwo extends Product { public TimesTwo() { super(2); }}class TimesWhat extends Product { public TimesWhat(int what) { super(what); }}超类
Product是抽象的,并且具有构造函数。具体的类
TimesTwo具有仅对值2进行硬编码的构造函数。具体的类
TimesWhat具有允许调用者指定值的构造函数。
抽象构造函数将经常用于强制类约束或不变量,例如设置类所需的最小字段。



