Java访问修饰符的可访问范围

5

Java有私有(private)、受保护(protected)和公共(public)访问修饰符。你能解释一下这些修饰符的可访问性范围吗?

如何在不同的包中访问一个受保护的成员?


1
在这里查看:http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html - Subhrajyoti Majumder
https://dev59.com/sGUo5IYBdhLWcg3wkQJq - jamesmortensen
官方教程中的表格(被接受的答案中复制的表格)在我看来不是非常易懂。可以查看这个表格以获得稍微更好的可视化效果。 - aioobe
1个回答

21

为了更好地理解,您需要查看这个:

Access Modifiers

                   Same Class      Same Package            Subclass     Other packages
public               Y                Y                      Y                   Y
protected            Y                Y                      Y                   N
no access modifier   Y                Y                      N                   N
private              Y                N                      N                   N


这里的重要区别在于Defaultprotected
默认:从不可在包外部访问
受保护:仅在类是子类的情况下才可在包外部访问。
编辑:由于你问题的答案也是一样的,即 您可以通过使您的类成为包含受保护成员的类的子类来访问受保护成员


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接