public protected default private
外包 1 0 0 0
父子类 1 1 0 0
本包 1 1 1 0
本类 1 1 1 1
为什么外部类只能用public或者default修饰?
外部类的上一层就是包了,首先,private只能自己用,那这样这个类就无意思了,排除掉。protected不支持外包,那么就只能本包下使用,而default更符合这一条件且不需要打修饰符,所以排除掉,这样就剩下default和public符合条件了。
public protected default private
外包 1 0 0 0
父子类 1 1 0 0
本包 1 1 1 0
本类 1 1 1 1
为什么外部类只能用public或者default修饰?
外部类的上一层就是包了,首先,private只能自己用,那这样这个类就无意思了,排除掉。protected不支持外包,那么就只能本包下使用,而default更符合这一条件且不需要打修饰符,所以排除掉,这样就剩下default和public符合条件了。