我在派生类中创建了基类的实例并尝试访问受保护的成员。
我可以直接访问派生类中的受保护成员,而无需实例化基类。
基类:
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
}
}
当派生类也在同一个包中但当派生类在不同包中时,如何使用基类的实例访问派生类中基类的受保护成员?
如果我将受保护成员标记为“静态”,那么我可以使用派生类中的基类实例访问基类的受保护成员,该派生类位于不同的包中。