Java并发编程——"this"逸出解决方法的思考

最近在看《Java并发编程实战》这本书的“3.2 发布与逸出”章节时,对“this”引用在对象构造方法中逸出问题的解决方法有点小疑惑。
书上是这么说的:

如果想在构造函数中注册一个事件监听器或启动线程,那么可以使用一个私有的构造函数和一个公共的工厂方法,从而避免不正确的构造过程。
代码:
public class SafeListener { private final EventListener listener; private SafeListener() { listener = new EventListener() { public void onEvent(Event e) { doSomething(e); } } }public static SafeListener newInstance(EventSource source) { SafeListener safe = new SafeListener(); source.registerListener(safe.listener); return safe; } }

我的疑惑就是,为什么构造方法一定要声明成private?我觉得声明成public应该也没问题吧?
经过一番思考,想到一个场景,就是子类继承情况,如果构造方法声明成public,那么子类重载父类构造方法也是有可能引入“构造方法中“this”逸出问题”的吧?
【Java并发编程——"this"逸出解决方法的思考】不知道有没有大佬有别的更合理的理解,还请指导一下!
最后发一篇在网上参考的文章,个人觉得比书里讲的要好些的:Java并发编程——this引用逸出("this"Escape)

    推荐阅读