如果我有一个Java类是包私有的(以“类”,而不是“大众级”声明),我们实在没有区别,如果这些方法中声明公共或保护或包私有的,对不对? 所以,这是我应该使用,或什么时候应该使用哪一个? 我有点困惑。
Answer 1:
如果我有一个Java类是包私有的(以“类”,而不是“大众级”声明),我们实在没有区别,如果这些方法中声明公共或保护或包私有的,对不对?
嗯,也许不会马上。 但是,如果之后(或将来)宣布“保护”或“公众”类,从包私有类继承,那么原始类的成员的知名度做的事。
作为@kmccoy指出,声明类为final子类中删除的可能性。
但这真的只是装点门面。 如果你再决定,你真的需要创建子类,您只需卸下final
......然后你回来在访问修饰符的选择做事情的情况。
IMO,底线是,你应该选择最合适的改性剂......即使它现在是没有必要的。 如果不出意外,你的改性剂的选择应该记录你的意图,以抽象边界所在的位置。
Answer 2:
包类中的公共方法公开在同一包中的类。 但是,私有方法不会在同一个包中的类访问。
文章来源: Java - Method accessibility inside package-private class?