如果我有一个包私有的java类(用" class“声明,而不是"public class"),那么里面的方法是被声明为public的,还是被保护的,或者是package-private的,真的没有区别,对吧?那么我应该使用哪一个,或者我应该在什么时候使用哪一个?我有点困惑。
发布于 2009-08-29 01:50:54
如果我有一个java类是包私有的(用" class“声明,而不是"public class"),那么里面的方法是声明为公共的,还是受保护的,还是包私有的,对吧?
好吧,也许不是马上。但是,如果您随后(或将来)声明一个从包私有类继承的“受保护的”或“公共的”类,那么原始类的成员的可见性确实很重要。
正如@kmccoy指出的那样,将类声明为final会消除子类的可能性。
但这实际上只是装点门面而已。如果您随后决定确实需要创建子类,则只需删除final ...然后,您又回到了访问修饰符的选择很重要的情况下。
IMO,底线是你应该选择最合适的修饰符...即使现在不是必须的。如果没有其他事情,您选择的修饰符应该记录您的意图,即抽象边界所在的位置。
发布于 2009-08-29 01:50:27
package类中的公共方法对同一个包中的类是公共的。但是,同一个包中的类不能访问私有方法。
https://stackoverflow.com/questions/1350171
复制相似问题