java – 抽象类中的私有构造函数[closed]

前端之家收集整理的这篇文章主要介绍了java – 抽象类中的私有构造函数[closed]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Java中,在抽象类中使用私有构造函数的目的是什么?

在一个评论中,我得到了这个问题,我很好奇,需要用什么样的方式来使用构造函数?@H_301_3@

我认为它可以与抽象类中的另一个构造函数配对使用,但这是非常微不足道的.它也可以用于构建静态内部类,这将使得抽象类将被激发.@H_301_3@

也许有更优雅的用法?@H_301_3@

解决方法

如果私有构造函数是该类的唯一构造函数,则原因很明确:防止子类化.一些类仅用作静态字段/方法的持有者,并且不希望被实例化或子类化.请注意,抽象修饰符在这种情况下是冗余的,有或没有它,将不会有实例化.正如@JB Nizet在下面注释的,抽象修饰符也是不好的做法,因为它向类的客户端发送错误的信号.实际上这个课程是最终的.

还有另一个用例,但很少见,但您可以拥有一个只包含自己的子类作为嵌套类的私有构造函数的抽象类.这个成语确保这些嵌套类是唯一的子类.事实上,Java中的枚举只是使用这个成语.@H_301_3@

如果周围还有其他构造函数,那么私有构造函数真的没什么特别的.它像在任何其他的一样在一个抽象类中使用.@H_301_3@

猜你在找的Java相关文章