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

3,098 阅读1分钟
  • public, protected ,default, private(java访问权限控制,只有这四位老哥)
  • java 外部类只能被public 和 default 修饰(但是这是为什么?)
  1. 对于一个外部类 定义为 private 很显然是没有意义的,一个类定义出来其他的类都无法和他沟通,独立存在是没有意义的.

  2. 默认是default,即缺省的时候外部类前面的权限修饰符是default 也就是包权限

  3. protected 是在defaul的基础之上增加了子类也可访问的权限,也就是说,你就算超出同一个包,即在另外一个包想要访问这个类,你得是他的子类,这个用来修饰方法行的通,好,那我们用外部类试试,在另外一个包里建一个类继承他,根本无法找到亲爸爸,好吗,怎么继承(先有鸡还是先有蛋),那就让他退回到同一个包里去访问,是的,可以找到亲爸爸,可以完成继承,但是想想,对于一个外部类,这样做他和default还有毛线的区别.而且他本身可以跳出同一个包访问的意义也不存在了,和咸鱼有什么区别,default可以干的事为什么还要你protected.java不需要咸鱼

  4. public 可以让其他包内的类访问到 这个不是咸鱼

总结

其实总结一下 外部类和外部类之间,访问权限就只有 包内包外 所以也自然应该就只有 public 和 default 可以修饰,其他的两位都是多鱼