抽象类中的私有构造函数

在Java中,在抽象类中使用私有构造函数的目的是什么?

在一个评论中,我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数?

我认为它可以与抽象类中的另一个构造函数一起使用,但这非常简单。它也可以用于构造将超过抽象类的静态内部类。

也许还有更优雅的用法?

回答:

如果private构造函数是类的

构造函数,则原因很明确:防止子类化。一些类仅充当静态字段/方法的持有者,而不希望实例化或子类化。请注意,abstract在这种情况下,修饰符是多余的,无论有没有修饰符,都无法实例化。就像@JB

Nizet在下面指出的那样,abstract修饰符也是一种不好的做法,因为它向类的客户端发送错误的信号。上课实际上应该是final

还有另一种用例,尽管很少见:您可以abstract class使用仅 。实际上,Java中的s仅使用这种惯用法。

***enum

如果周围还有其他构造函数,那么构造函数确实没有什么特别的privateabstract就像在其他类中一样,它在类中使用。

以上是 抽象类中的私有构造函数 的全部内容, 来源链接: utcz.com/qa/397495.html

回到顶部