Java外部类为什么不能用private,protected修饰

沉寂了将近一年后,决定重新理解Java,刚开始就遇到这个以前忽略的问题。简单写一下自己的想法:

首先,Java中类的存在的意义就是要被其它类调用。

外部类:

默认的修饰符(default)可以保证该外部类可被同一包的其它类使用。

public可以使该类在同一工程的任意位置(本包和其它包)中使用。

若声明为private,该类不能被任何其它类调用,则失去了在实际应用中的意义(一个文件的力量太有限了)。

关于protected,我们先来看一个图:

对于外部类,protected与default的区别就是在继承中子类是否能访问到父类的实例变量。default可以使同包的子类访问,protected可以使不同包的子类访问。

重点来了!!!protected声明的类在不同包中访问不到!!!

所以外部类声明为protected或default其实现的访问限制完全相同!

功能重复,这大概就是外部类不能声明为protected的原因吧。

猜你喜欢

转载自blog.csdn.net/qq_41882686/article/details/88936657