Java 静态工厂法

Java 静态工厂法,java,Java,根据Joshu Bloch的高效Java,“只提供静态工厂方法的主要缺点是没有公共或受保护构造函数的类不能被子类化。”有人能解释一下这意味着什么吗?尤其是粗体字。若提供或不提供静态工厂方法,那个么带有私有构造函数的类就不能被子类化,对吗 仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化 每当调用子类的构造函数时,也会调用父类的构造函数。在缺少受保护或公共构造函数的情况下,对类进行子分类或扩展将毫无意义。因此不利 仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化 每当调用子

根据Joshu Bloch的高效Java,“只提供静态工厂方法的主要缺点是没有公共或受保护构造函数的类不能被子类化。”有人能解释一下这意味着什么吗?尤其是粗体字。若提供或不提供静态工厂方法,那个么带有私有构造函数的类就不能被子类化,对吗

仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化

每当调用子类的构造函数时,也会调用父类的构造函数。在缺少受保护或公共构造函数的情况下,对类进行子分类或扩展将毫无意义。因此不利

仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化

每当调用子类的构造函数时,也会调用父类的构造函数。在缺少受保护或公共构造函数的情况下,对类进行子分类或扩展将毫无意义。因此不利

仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化

每当调用子类的构造函数时,也会调用父类的构造函数。在缺少受保护或公共构造函数的情况下,对类进行子分类或扩展将毫无意义。因此不利

仅提供静态工厂方法是指没有公共 或受保护的构造函数不能子类化


每当调用子类的构造函数时,也会调用父类的构造函数。在缺少受保护或公共构造函数的情况下,对类进行子分类或扩展将毫无意义。因此存在缺点。

Java需要派生类来确保继承的字段将被正确初始化。它是通过在构造函数开始时调用超类的构造函数来完成的

这样的代码应该是

class Derived class Parent{
    public Derived(){
        super();//this will be added automatically by compiler
        //or super(arguments) if you want to use constructor with arguments
    }
}

但若超类并没有使其构造函数可访问(它是女贞),派生类就不能在其任何构造函数中添加
super
调用。这意味着我们不能为构造函数创建有效的代码,而且因为所有类都必须至少有一个构造函数,所以派生类无法编译。

Java需要派生类来确保继承的字段将被正确初始化。它是通过在构造函数开始时调用超类的构造函数来完成的

这样的代码应该是

class Derived class Parent{
    public Derived(){
        super();//this will be added automatically by compiler
        //or super(arguments) if you want to use constructor with arguments
    }
}

但若超类并没有使其构造函数可访问(它是女贞),派生类就不能在其任何构造函数中添加
super
调用。这意味着我们不能为构造函数创建有效的代码,而且因为所有类都必须至少有一个构造函数,所以派生类无法编译。

Java需要派生类来确保继承的字段将被正确初始化。它是通过在构造函数开始时调用超类的构造函数来完成的

这样的代码应该是

class Derived class Parent{
    public Derived(){
        super();//this will be added automatically by compiler
        //or super(arguments) if you want to use constructor with arguments
    }
}

但若超类并没有使其构造函数可访问(它是女贞),派生类就不能在其任何构造函数中添加
super
调用。这意味着我们不能为构造函数创建有效的代码,而且因为所有类都必须至少有一个构造函数,所以派生类无法编译。

Java需要派生类来确保继承的字段将被正确初始化。它是通过在构造函数开始时调用超类的构造函数来完成的

这样的代码应该是

class Derived class Parent{
    public Derived(){
        super();//this will be added automatically by compiler
        //or super(arguments) if you want to use constructor with arguments
    }
}

但若超类并没有使其构造函数可访问(它是女贞),派生类就不能在其任何构造函数中添加
super
调用。这意味着我们无法为构造函数创建有效代码,由于所有类都必须至少有一个构造函数,派生类不能编译。

少无意义,多无意义。少无意义,多无意义。少无意义,多无意义。少无意义,多无意义。重新表述问题。重新表述问题。重新表述问题。重新表述问题问题。