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

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

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

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

也许有更优雅的用法

解决方法

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

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

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

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...