如果我有一个包私有的java类(用“类”声明,而不是“公共类”),那么如果里面的方法被声明为公共的或受保护的或包私有的,真的没有区别,对吧?那么我应该使用哪个,或者我应该什么时候使用哪个?我有点困惑。
问问题
9794 次
2 回答
18
如果我有一个包私有的java类(用“类”声明,而不是“公共类”),那么如果里面的方法被声明为公共的或受保护的或包私有的,真的没有区别,对吧?
好吧,也许不是马上。但是,如果您当时(或将来)声明了一个从包私有类继承的“受保护”或“公共”类,那么原始类成员的可见性就很重要。
正如@kmccoy 指出的那样,将类声明为final 消除了子类的可能性。
但这实际上只是装点门面。如果你然后决定你真的需要创建子类,你只需删除final
... 然后你又回到了访问修饰符的选择很重要的情况。
IMO,最重要的是您应该选择最合适的修饰符……即使现在没有必要。如果不出意外,您选择的修饰符应该记录您对抽象边界所在位置的意图。
于 2009-08-29T01:50:53.543 回答
4
包类中的公共方法对同一包中的类是公共的。但是,同一包中的类将无法访问私有方法。
于 2009-08-29T01:50:27.350 回答