Warum ist die geschützte Methode nicht sichtbar?

Java-Experten, würde ich aufrichtig schätzen eine Einsicht!

Ich habe eine abstrakte Klasse ist in einem Paket mit einer protected-Methode. Ich habe auch eine Unterklasse dieser Klasse im gleichen Paket. Wenn ich jetzt versuche, zu instanziieren, die die Unterklasse von einer Klasse außerhalb des Pakets, und berufen sich auf die protected-Methode in der Unterklasse' Instanz, Eclipse beschwert sich der protected-Methode ist nicht sichtbar.

Dachte ich, geschützten Methoden werden sichtbar für alle Kinder - in die oder aus der Paket - solange die Klasse Sichtbarkeit wird nicht eingeschränkt - in diesem Fall, sowohl die übergeordnete als auch die untergeordnete Klasse sind public. Was bin ich? Vielen Dank im Voraus!

package X;
public abstract class Transformation {
  protected OutputSet genOutputSet (List list) {
    ..
  }
}

package X;
public class LookupTransformation extends Transformation {
}

package Y;
import X.*;
public class Test {
  public static void main(String[] args) {
    List<field> fld_list = new ArrayList();
    ..
    LookupTransformation lkpCDC = new LookupTransformation();
    OutputSet o = lkpCDC.genOutputSet(fld_list); //Eclipse errors out here saying genOutputSet from the Type Transformation is not visible. WWWWWWWWHHHHHAAAATTTTTT????
  }
}

  • Genial - vielen Dank Euch allen für die Antwort. Also in diesem Fall, werden Sie sagen, ich kann nicht laufen genOutputSet aus der Klasse "Test" überhaupt?
  • Zusätzlich werden die Signaturen nicht übereinstimmen.
  • Hi, nur der Aktualisierung, ob oder nicht Sie möchten, um eine Antwort auswählen, so dass wir vielleicht schließen Sie diese Frage ab. 🙂
InformationsquelleAutor Bi Act | 2014-08-15
Schreibe einen Kommentar