geschützte/öffentliche Innere Klassen

Kann mir jemand bitte erklären, was ist der Unterschied zwischen protected /public Innere Klassen?

Ich weiß, dass public innere Klassen sind zu vermeiden, so viel wie möglich (wie erläutert in diesem Artikel).

Aber was ich sagen kann, es gibt keinen Unterschied zwischen der Verwendung protected oder public Modifikatoren.

Werfen Sie einen Blick auf dieses Beispiel:

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();
 }
}

Alle diese kompiliert und ist unabhängig davon gültig, ob ich erklären InnerFoo protected oder public.

Was bin ich? Bitte, zeigen Sie mir einen Fall, wo es einen Unterschied in der Verwendung protected oder public.

Dank.

InformationsquelleAutor bruno conde | 2009-02-27

Schreibe einen Kommentar