抽象类可以有一个构造函数吗?

问题:

抽象类可以有一个构造函数吗?
如果是这样,怎么可以使用和什么目的?

回答:

是的,一个抽象类可以有一个构造函数。考虑这个:

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有一个构造函数允许调用者指定该值。
抽象构造函数将经常用于强制类约束或不变量,例如设置类所需的最小字段。

注意:由于父抽象类中没有默认(或无参数)构造函数,子类中使用的构造函数必须显式调用父构造函数。

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Can an abstract class have a constructor?

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

87 + = 96