我最近在学习Java,了解到package-private
类的概念,如果我们不指定任何访问修饰符,这是默认的。但后来我意识到:
我很少看到使用package-private类。这是出于什么原因呢?例如,它有严重缺陷、冗余或仅仅是因为我读得不够多?是否有强有力的理由支持/反对其使用?
如果在大多数情况下它真的没有用处,为什么会成为默认值?
在实际工作中什么情况下应该使用package-private呢?即,在什么情况下它变得不可替代?
换句话说,使用默认的package-private修饰符的主要优缺点是什么?
protected
修饰符与package private
相同,只是子类也被邀请参加派对。但如果本来不存在子类关系,则为了访问而创建子类关系是错误的。例如,将EmailSender
类作为DomainObjectFilter
类的子类或反之通常没有任何意义。在这种情况下,该方法通常只是被设置为public
(可能附带一条注释说明它并不是 概念上 的公共方法...)。 - Andrzej Doyle