构造函数在抽象类中有什么用?

时间:2010-07-02 08:43:32

标签: java oop constructor abstract-class

由于我们无法实例化抽象类,那么在抽象类中使用构造函数的必要性是什么?

4 个答案:

答案 0 :(得分:4)

抽象类被设计为扩展,来自子must perform a call to a constructor from the base class的每个构造函数,因此您需要抽象类中的构造函数。

抽象类是一个骨架,因此直接实例化它是没有意义的,因为它仍然是不完整的(孩子们会提供其余的)。

答案 1 :(得分:2)

一个例子:

public abstract class BaseClass
{
    private String member;

    public BaseClass(String member)
    {
        this.member = member;
    }

    ... abstract methods...
}

public class ImplementingClass extends BaseClass
{
    public ImplementingClass(String member)
    {
        /* Implementing class must call a constructor from the abstract class */
        super(member);
    }

    ... method implementations...
}

答案 2 :(得分:2)

我们可以使用抽象类构造函数来执行与每个子类相关的代码。这样可以防止重复代码

答案 3 :(得分:1)

抽象类可以有字段和非抽象方法(是什么使它成为抽象类rater而不是接口)。当扩展它的类被实例化时,可能需要初始化这些字段。

在抽象类中使用构造函数允许您调用super(foo);来初始化它们而不是直接执行它