Chapter 9 Abstract Classes and Interfaces

          1. 抽象類不能創建任何實例,但可以被當作數據類型使用,因此可以創建抽象類類型的數組
          ClassAbstract[] example = new ClassAbstract[];

          2. 含有抽象方法的類必須被聲名為抽象類,但抽象類不一定必須包含抽象方法。
          作為抽象類的子類,如果沒有實現(implement)所有的抽象方法,也只能被聲名為抽象類。
          抽象類也可以有自己的構造函數,以便被子類繼承。

          3. 子類可以重載父類的方法,并把它定義為抽象的。盡管這很少見,但是當父類的方法在子類中變得不可用時,就必須這么做。

          4. 上一章跳過的一個概念:Hiding Data Fields and Static Methods
          子類無法重載父類的數據域(無論靜態與否)或靜態方法,當你在子類中定義了同名的變量或是靜態方法的時候,原來的方法或變量就被隱藏了,但仍然存在,訪問它們有兩種方法,一種是用super關鍵字,另一種就是通過父類的reference訪問。
          例如
          class Animal {
          public String news = "Animal's news";

          public static String smile() {
          return "smile from Animal";
          }
          }

          class Tiger extends Animal {
          public String news = "Tiger's news";

          public static String smile() {
          return "smile for Tiger";
          }
          }

          x.news 為 Animal's news
          x.simle() 返回 smile from Animal
          只有將x造型(casting)為Tiger時,才會返回Tiger的內容。
          但是實例方法(instance method)不存在這個現象。

          5. Calendar 類及其子類

          6. 接口 Interface
          interface是一種類似于class的結構,且只包含常數和抽象方法。
          如java.lang.Comparable
          package java.lang;

          public interface Comparable {
          public int compareTo(Object o);
          }

          max方法用來取兩個對象中較大的那一個:
          public class Max {
          public static Object max(Object o1, Object o2) {
          if (((Comparable)o1).compareTo(o2) < 0)
          return o1;
          else
          return o2;
          }
          }

          使用max:以字符串為例
          String s1 = "abcde";
          String s2 = "abcdg";
          String s3 = (String)Max.max(s1, s2);

          (Comparable)o1 告訴編譯器,把o1轉型為Comparable以便于調用comepareTo方法。


          posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          2.1 Java notes

          Posted on 2007-04-22 20:23 ZelluX 閱讀(91) 評論(0)  編輯  收藏 所屬分類: OOP
          2007-02-01 21:49:19
          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 铜川市| 弥渡县| 北流市| 彰武县| 贵南县| 汉寿县| 鄂尔多斯市| 修水县| 武功县| 阿鲁科尔沁旗| 甘泉县| 成安县| 滦南县| 遂昌县| 闵行区| 卢氏县| 广东省| 荣成市| 龙门县| 屏南县| 康保县| 通道| 柳江县| 惠来县| 景德镇市| 抚州市| 威宁| 定结县| 错那县| 永丰县| 革吉县| 井冈山市| 遵化市| 沂南县| 定边县| 嘉荫县| 南乐县| 云龙县| 扎赉特旗| 东兰县| 隆子县|