没错,您是对的。之所以不能访问该字段,是因为您与该类不在同一个程序包中, 。
最后一点很关键-如果您写过
MyCollection2 mc = new MyCollection2();
mc.intg = 1;
那么这将起作用,因为您要更改 自己 类的受保护成员(该类通过继承出现在该类中)。但是,在您的情况下,您尝试更改其他包中 类的受保护成员。因此,拒绝访问就不足为奇了。
java-使用基类实例在派生类中访问的受保护成员
没错,您是对的。之所以不能访问该字段,是因为您与该类不在同一个程序包中, 。
最后一点很关键-如果您写过
MyCollection2 mc = new MyCollection2();
mc.intg = 1;
那么这将起作用,因为您要更改 自己 类的受保护成员(该类通过继承出现在该类中)。但是,在您的情况下,您尝试更改其他包中 类的受保护成员。因此,拒绝访问就不足为奇了。