The following table can, in general, distinct access modifiers clearly.
Modifier | Class | Package | Subclass | Other package public | y | y | y | y protected | y | y | y | n default | y | y | n | n private | y | n | n | n y: accessible n: not accessible
But there are some details that have to be noted down.
#1
A normal class has only two modifiers, namely, 'public' and 'default' (no modifier), which is obvious in semantics that a private or protected class is not congruent with the meaning of the above table. Whereas inner class can be defined by all the four modifiers.
#2
It is probably worth pointing out that in the case of 'default' (no modifier), whether or not the subclass can see it's superclass's methods/fields depends on the location of the subclass. If the subclass is in another package, then the answer is it can't. If the subclass is in the same package then it CAN access the superclass methods/fields.
© 2014-2017 jason4zhu.blogspot.com All Rights Reserved
If transfering, please annotate the origin: Jason4Zhu
It is really a great work and the way in which u r sharing the knowledge is excellent.Thanks for helping me to understand java access specifier concepts. As a beginner in java programming your post help me a lot.Thanks for your informative article.java training in chennai
ReplyDeletethis is good post about Java access modifiers .
ReplyDeletethanks.
Helpful reference on modifiers, thanks.
ReplyDelete