网上看了很多关于Java中不同作用域访问权限的文章,综合一些大家写的,总结了一个比较好理解的记住方法。
说明:如果在修饰的元素上面没有写任何访问修饰符,用default表示
作用域 |
当前类 |
同一包(package) |
子孙类 |
其他包 |
public |
√ |
√ |
√ |
√ |
protected |
√ |
√ |
√ |
× |
default |
√ |
√ |
× |
× |
private |
√ |
× |
× |
× |
说明:同一package可以理解为在同一个村庄
public 可以理解为无论是否在一个村,谁都可以访问
protected 可以理解为,只有自己一个村的邻居和子女,以及远嫁出去的子女可以访问
default 可以理解为,只有自己同村的可以范围,如果子女和自己是同村,也可以使用。如果子女远嫁出去,不在自己的村庄了,很抱歉,远水解不了近渴,远亲不如近邻。
private 可以理解为 私有财产不可侵犯,有些事情,除了自己,绝不能让其他人访问,例如银行密码。