使用受保护的构造函数

时间:2015-01-18 11:10:57

标签: java

我们通常创建公共构造函数,并且为了单一的原因创建私有构造函数,所以我想知道是否使用了受保护的构造函数。

1 个答案:

答案 0 :(得分:1)

抽象类的子类需要调用其超类的构造函数,因此受保护的构造函数才有意义。

public abstract class A
{
    protected A (int something)
    {

    }
}

public class B extends A
{
    public B (int something)
    {
        super(something);
    }
}

实际上,在抽象超类的情况下,您不需要保护构造函数,因为即使构造函数是公共的,您也无法创建A的实例。但即使A不是抽象的,您也可能希望定义A的构造函数,该构造函数只能由A的子类调用。