首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >静态工厂方法

静态工厂方法
EN

Stack Overflow用户
提问于 2015-06-21 09:41:01
回答 2查看 100关注 0票数 0

根据Joshu的有效Java,“只提供静态工厂方法的主要缺点是没有公共或受保护构造函数的类不能被子类化。”谁能解释一下这是什么意思吗?尤其是黑体字。如果提供或不提供静态工厂方法,则不能对带有私有构造函数的类进行子类划分,对吗?

EN

回答 2

Stack Overflow用户

发布于 2015-06-21 09:44:06

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

每当调用子类的构造函数时,父类的构造函数也会被调用。在没有受保护的或公共的构造函数的情况下,对类进行子类分类或扩展类是没有意义的。因此,不利因素。

票数 3
EN

Stack Overflow用户

发布于 2015-06-21 09:51:26

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

这样的代码应该看起来像

代码语言:javascript
复制
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调用。这意味着我们不能为构造函数创建有效的代码,而且由于所有类都必须至少有一个构造函数,所以派生类无法编译。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30963154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档