当类具有默认访问修饰符时,使用公共方法有什么用?

Gur*_*lki 13 java

至于我的观察,当类本身具有默认访问修饰符时,在其中使用公共方法有什么用处.java编译器可能已停止使用默认类中的公共方法.有什么理由吗?

Jon*_*erg 7

一个原因:如果您的类实现了一些接口(或者使用抽象的公共方法扩展了一些抽象类),那么您可能不会降低这些实现方法的可见性.

  • 公共子类也将这些方法继承为public. (3认同)

Dan*_*yer 7

非公共类可能实现公共接口.这意味着包外部的类无法创建此类的实例或创建该类型的引用,但如果传递实例,它们仍然可以在其上调用方法.

例如,公共工厂类可能会在其包中创建非公共类的实例并将其返回.


Raz*_*zvi 6

它是安全性和可用性的完美结合。

如果我希望一个类具有包访问权限(这样其他包就不能使用它或更好地更改代码),我会将一个类标记为默认访问权限,并将一个方法标记为公共,我将使该方法可供所有其他包访问类,无论它们属于哪个包。

这有什么帮助?一个足够安全的类,可以执行所有复杂的代码实现,并且足够可用,可以将输出提供给想要使用它的用户。

怎么会有人用它呢?那么,您可以编写代码来帮助他们通过创建一个扩展此默认类的公共类来使用它。您可以在任何包中实例化这个公共子类(当然是在导入之后),并且所有方法都标记为公共。

你有一个类可以发挥你的魔力,每个人都可以使用它,而无需向其他人暗示你是如何完成它的!