Ho creato l'istanza della classe base nella classe derivata e ho provato ad accedere ai membri protetti.java - membri protetti acceduti nella classe derivata utilizzando l'istanza della classe base
Posso accedere direttamente ai membri protetti in una classe derivata senza creare un'istanza della classe base.
Classe base:
package com.core;
public class MyCollection {
protected Integer intg;
}
Una classe derivata nella stessa confezione -
package com.core;
public class MyCollection3 extends MyCollection {
public void test(){
MyCollection mc = new MyCollection();
mc.intg=1; // Works
}
}
Una classe derivata in un pacchetto differente -
package secondary;
import com.core.MyCollection;
public class MyCollection2 extends MyCollection{
public void test(){
MyCollection mc = new MyCollection();
mc.intg = 1; //!!! compile time error - change visibility of "intg" to protected
}
}
Come è possibile accedere un membro protetto di una classe base in una classe derivata utilizzando l'istanza della classe base quando la classe derivata è anch'essa in s pacchetto ame ma non quando la classe derivata è in un pacchetto diverso?
Se contrassegno membro protetto come "statico", posso accedere al membro protetto della classe base utilizzando l'istanza della classe base in una classe derivata che risiede in un pacchetto diverso.
possibile duplicato del [Java Protected Access non funziona] (http://stackoverflow.com/questions/332920/java-protected-access-not-working) --- In realtà questo è l'errore sbagliato! Scusate! Questo è sicuramente un dupe però. – polygenelubricants
non ti preoccupare, il tuo IDE non farà alcuna differenza alla domanda in quanto riguarda la semantica del linguaggio Java stesso. –
possibile duplicato di [perché non posso accedere al metodo java protetto anche se ho pensato di estendere la classe?] (Http://stackoverflow.com/questions/1622219/why-cant-i-access-protected-java-method -even-thought-ive-extended-the-class) – starblue