知识大全 “友好的一种”

Posted 内容

篇首语:人并不是因为美丽才可爱,而是因为可爱才美丽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 “友好的一种”相关的知识,希望对你有一定的参考价值。

  protected(受到保护的)访问指示符要求大家提前有所认识 首先应注意这样一个事实 为继续学习本书一直到继承那一章之前的内容 并不一定需要先理解本小节的内容 但为了保持内容的完整 这儿仍然要对此进行简要说明 并提供相关的例子     protected关键字为我们引入了一种名为 继承 的概念 它以现有的类为基础 并在其中加入新的成员 同时不会对现有的类产生影响——我们将这种现有的类称为 基础类 或者 基本类 (Base Class) 亦可改变那个类现有成员的行为 对于从一个现有类的继承 我们说自己的新类 扩展 (extends)了那个现有的类 如下所示     class Foo extends Bar     类定义剩余的部分看起来是完全相同的     若新建一个包 并从另一个包内的某个类里继承 则唯一能够访问的成员就是原来那个包的public成员 当然 如果在相同的包里进行继承 那么继承获得的包能够访问所有 友好 的成员 有些时候 基础类的创建者喜欢提供一个特殊的成员 并允许访问衍生类 这正是protected的工作 若往回引用 小节 public 接口访问 的那个Cookie java文件 则下面这个类就不能访问 友好 的成员     //: ChocolateChip java  // Can t access friendly member  // in another class  import c 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()     System out println( Cookie constructor );      protected void foo()     System out println( foo );          那么仍然能在包dessert里 友好 地访问foo() 但从Cookie继承的其他东西亦可自由地访问它 然而 它并非公共的(public) cha138/Article/program/Java/JSP/201311/19251

相关参考