Я создал экземпляр базового класса в производном классе и попытался получить доступ к защищенным членам.
Я могу получить прямой доступ к защищенным членам в производном классе без создания экземпляра базового класса.
Базовый класс:
package com.core;
public class MyCollection {
protected Integer intg;
}
Производный класс в том же пакете -
package com.core;
public class MyCollection3 extends MyCollection {
public void test(){
MyCollection mc = new MyCollection();
mc.intg=1; // Works
}
}
Производный класс в другом пакете -
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
}
}
Как можно получить доступ к защищенному члену базового класса в производном классе, используя экземпляр базового класса, когда производный класс также находится в том же пакете, но не когда производный класс находится в другом пакете?
Если я отмечу защищенный член как «статический», тогда я получу доступ к защищенному члену базового класса, используя экземпляр базового класса в производном классе, который находится в другом пакете.