Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 受保护构造函数的使用_Java - Fatal编程技术网

Java 受保护构造函数的使用

Java 受保护构造函数的使用,java,Java,我们通常创建公共构造函数,但出于单一原因,我们创建私有构造函数,因此我想知道受保护构造函数的用途是什么。抽象类的子类需要调用其超类的构造函数,因此受保护构造函数才有意义 public abstract class A { protected A (int something) { } } public class B extends A { public B (int something) { super(something);

我们通常创建公共构造函数,但出于单一原因,我们创建私有构造函数,因此我想知道受保护构造函数的用途是什么。

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

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

    }
}

public class B extends A
{
    public B (int something)
    {
        super(something);
    }
}
实际上,在抽象超类的情况下,不需要保护构造函数,因为即使构造函数是公共的,也不能创建实例。但是,即使A不是抽象的,您也可能希望定义只能由A的子类调用的A的构造函数