protected:“友好的一种” |
发布时间: 2012/9/1 17:13:05 |
protected(受到保护的)访问指示符要求大家提前有所认识。首先应注意这样一个事实:为继续学习本书一 然,如果在相同的包里进行继承,那么继承获得的包能够访问所有“友好”的成员。有些时候,基础类的创 建者喜欢提供一个特殊的成员,并允许访问衍生类。这正是protected 的工作。若往回引用5.2.2 小节 “public:接口访问”的那个Cookie.java 文件,则下面这个类就不能访问“友好”的成员: //: ChocolateChip.java // Can't access friendly member // in another class import c05.dessert.*; public class ChocolateChip extends Cookie { public ChocolateChip() { System.out.println( "ChocolateChip constructor"); } public static void main(String[] args) { ChocolateChip x = new ChocolateChip(); //! x.foo(); // Can't access foo } } ///:~ 对于继承,值得注意的一件有趣的事情是倘若方法foo()存在于类Cookie 中,那么它也会存在于从Cookie 继承的所有类中。但由于foo()在外部的包里是“友好”的,所以我们不能使用它。当然,亦可将其变成 public。但这样一来,由于所有人都能自由访问它,所以可能并非我们所希望的局面。若象下面这样修改类 Cookie: public class Cookie {
public Cookie() { 本文出自:亿恩科技【www.enkj.com】 |