我们通常创建公共构造函数,并且为了单一的原因创建私有构造函数,所以我想知道是否使用了受保护的构造函数。
答案 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的子类调用。