java – protected / public内部类

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

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

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

看看这个例子:

public class Foo1 {
 public Foo1() { }

 protected class InnerFoo {
  public InnerFoo() {
   super();
  }
 }
}

public class Foo2 extends Foo1 {
 public Foo2() {
  Foo1.InnerFoo innerFoo = new Foo1.InnerFoo();
 }
}

public class Bar {
 public Bar() {
  Foo1 foo1 = new Foo1();
  Foo1.InnerFoo innerFoo1 = foo1.new InnerFoo();

  Foo2 foo2 = new Foo2();
  Foo2.InnerFoo innerFoo2 = foo2.new InnerFoo();
 }
}

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

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

谢谢.

解决方法

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

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

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

原文链接:https://www.f2er.com/java/123103.html

猜你在找的Java相关文章