java – protected / public内部类

前端之家收集整理的这篇文章主要介绍了java – protected / public内部类前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有人可以向我解释保护/公共内部类之间的区别是什么?

我知道公共内部课程要尽可能的避免(像这个article中解释的).

但是从我可以看出,使用保护或公共修饰符没有区别.

看看这个例子:

  1. public class Foo1 {
  2. public Foo1() { }
  3.  
  4. protected class InnerFoo {
  5. public InnerFoo() {
  6. super();
  7. }
  8. }
  9. }

  1. public class Foo2 extends Foo1 {
  2. public Foo2() {
  3. Foo1.InnerFoo innerFoo = new Foo1.InnerFoo();
  4. }
  5. }

  1. public class Bar {
  2. public Bar() {
  3. Foo1 foo1 = new Foo1();
  4. Foo1.InnerFoo innerFoo1 = foo1.new InnerFoo();
  5.  
  6. Foo2 foo2 = new Foo2();
  7. Foo2.InnerFoo innerFoo2 = foo2.new InnerFoo();
  8. }
  9. }

所有这些编译和有效,无论我是否声明InnerFoo保护或公开.

我失踪了什么请指出我使用受保护或公开的情况.

谢谢.

解决方法

受保护的访问修饰符将限制来自同一个包及其子类中的类的访问.

在所示的示例中,公共和受保护的将具有与在同一个包中相同的效果.

有关访问修改器的更多信息,The Java Tutorials Controlling Access to Members of a Class页可能是感兴趣的.

猜你在找的Java相关文章