国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

protected:“友好的一種”

2019-11-18 13:21:14
字體:
來源:轉載
供稿:網友

  PRotected(受到保護的)訪問指示符要求大家提前有所熟悉。首先應注重這樣一個事實:為繼續學習本書一直到繼續那一章之前的內容,并不一定需要先理解本小節的內容。但為了保持內容的完整,這兒仍然要對此進行簡要說明,并提供相關的例子。
  
  protected要害字為我們引入了一種名為“繼續”的概念,它以現有的類為基礎,并在其中加入新的成員,同時不會對現有的類產生影響——我們將這種現有的類稱為“基礎類”或者“基本類”(Base Class)。亦可改變那個類現有成員的行為。對于從一個現有類的繼續,我們說自己的新類“擴展”(extends)了那個現有的類。如下所示:
  
  class Foo extends Bar {
  
  類定義剩余的部分看起來是完全相同的。
  
  若新建一個包,并從另一個包內的某個類里繼續,則唯一能夠訪問的成員就是原來那個包的public成員。當然,假如在相同的包里進行繼續,那么繼續獲得的包能夠訪問所有“友好”的成員。有些時候,基礎類的創建者喜歡提供一個非凡的成員,并答應訪問衍生類。這正是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() {
    System.out.println("Cookie constructor");
   }
   protected void foo() {
    System.out.println("foo");
   }
  }
  
  那么仍然能在包dessert里“友好”地訪問foo(),但從Cookie繼續的其他東西亦可自由地訪問它。然而,它并非公共的(public)。

上一篇:確保正確的清除

下一篇:必須執行清除

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平遥县| 湖州市| 沾化县| 宁国市| 永丰县| 邮箱| 阳曲县| 连城县| 汝阳县| 晴隆县| 额尔古纳市| 准格尔旗| 萍乡市| 滨州市| 塔河县| 柳林县| 河间市| 东光县| 大理市| 汉寿县| 噶尔县| 江城| 含山县| 石屏县| 荔波县| 元谋县| 阜宁县| 盖州市| 翁源县| 四子王旗| 博罗县| 宜春市| 马尔康县| 江西省| 余江县| 双牌县| 沾益县| 永寿县| 工布江达县| 罗田县| 南川市|