抽象类中的私有构造函数
在Java中,在抽象类中使用私有构造函数的目的是什么?
在一个评论中,我得到了这个问题,我很好奇,在什么情况下我们需要以这种方式使用构造函数?
我认为它可以与抽象类中的另一个构造函数一起使用,但这非常简单。它也可以用于构造将超过抽象类的静态内部类。
也许还有更优雅的用法?
回答:
如果private
构造函数是类的
构造函数,则原因很明确:防止子类化。一些类仅充当静态字段/方法的持有者,而不希望实例化或子类化。请注意,abstract
在这种情况下,修饰符是多余的,无论有没有修饰符,都无法实例化。就像@JB
Nizet在下面指出的那样,abstract
修饰符也是一种不好的做法,因为它向类的客户端发送错误的信号。上课实际上应该是final
。
还有另一种用例,尽管很少见:您可以abstract class
使用仅 。实际上,Java中的s仅使用这种惯用法。
***enum
如果周围还有其他构造函数,那么构造函数确实没有什么特别的private
。abstract
就像在其他类中一样,它在类中使用。
以上是 抽象类中的私有构造函数 的全部内容, 来源链接: utcz.com/qa/397495.html