<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jafe Lee

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      49 隨筆 :: 0 文章 :: 24 評論 :: 0 Trackbacks
    ??? 雖然接觸Java已經快一年了,也系統的學過Java語法,不過很多概念到現在都搞不清楚,現在決定重新把這些模糊的概念重新溫習一遍,今天就現總結一下抽象類(abstract class)。

    1、使用abstract類的動機:可以參考 Cay?S.?Horstmann, Gary?Cornel 寫的書《Core Java? 2 Volume I - Fundamentals, Seventh Edition 》(順便羅嗦一下,該書是偶見過最好的Java入門書) “Classes, Superclasses, and Subclasses ”一節,定義一個abstract class的格式是:修飾符(public, private, etc)+abstract+類名 或者 abstract + 修飾符 + 類名。

    2、如果一個類至少存在一個抽象方法(abstract method),則它自身必須聲明成一個抽象類。但一個類可以被聲明成一個抽象類即使它沒有任何抽象方法。聲明一個abstract method的格式是:
    修飾符(public, private, etc)+abstract+返回類型 + 方法名 或者 abstract + 修飾符 + 返回類型 + 方法名。

    3、一個抽象類可以有數據域和非抽象方法(concrete data and concrete methods)。

    4、當一個子類繼承某個抽象類時,它可以有兩個選擇:
    ??? (1)??? 部分實現或完全不實現父類的所有抽象方法,但此時子類必須聲明為抽象類。
    ??? (2)??? 實現父類所有的抽象方法,此時之類不比聲明為抽象類。

    5、抽象類不能被實例化(be instantiated),但可以實例化非抽象子類(concrete subclass)。
    ?? 可以聲明抽象類變量,但該變量必須指向一個非抽象子類
    .看下面一個例子:
    ???1.??Person?[]?people?=?new?Person[2];????
    ???
    2.?people[0]?=?new?Employee();????
    ???
    3.?people[1]?=?new?Student();??
    ???
    4.?for?(Person?p?:?people)??
    ???
    5.????System.out.println(p.getName()?+?","?+?p.getDescription());??
    注意代碼中的一個調用:p.getDescription().可能有人會擔心這里調用了一個沒定義的方法。但是, 由于不能構造抽象類Person的對象,所以p永遠不會調動Person對象,而是只會調用諸如Employee或Student這樣的具體子類方法。注意,如果沒有定義Person中抽象方法getDescription()但是通過p調用getDescription()則會產生編譯錯誤,編譯器只允許調用在類中聲明的方法。

    6、摘自《Core Java 2》的一個例子:

    PersonTest.java

    參考資料:

    Core Java 2 Volume I - Fundamentals, Seventh Edition

    by Cay S. Horstman, Gary Cornell



    posted on 2007-05-20 18:27 Jafe Lee 閱讀(4387) 評論(1)  編輯  收藏 所屬分類: Java

    評論

    # re: Java abstract 類 2007-10-09 11:51 郭娟
    2、如果一個類至少存在一個抽象方法(abstract method),則它自身必須聲明成一個抽象類。但一個類可以被聲明成一個抽象類即使它沒有任何抽象方法。
    就這一條不甚理解,假如一個類就單單用abstract聲明,但是里面沒有一個方法是abstract的,那是不是繼承他的子類只要不用abstract聲明就都不是抽象類了??????  回復  更多評論
      

    主站蜘蛛池模板: 看成年女人免费午夜视频| 国产黄色片免费看| 久久精品国产精品亚洲艾草网美妙 | 99热在线日韩精品免费| 亚洲国产韩国一区二区| 免费h黄肉动漫在线观看| 日韩在线永久免费播放| 国产亚洲精品美女| 久久精品国产亚洲AV麻豆网站| 国产一精品一aⅴ一免费| 最近免费中文字幕大全免费版视频 | 亚洲?V乱码久久精品蜜桃| 18禁美女裸体免费网站| 老司机精品视频免费| 亚洲美女aⅴ久久久91| 亚洲片国产一区一级在线观看 | h视频在线观看免费网站| 曰批全过程免费视频免费看| 亚洲精品美女在线观看| 亚洲片国产一区一级在线观看| A级毛片内射免费视频| 久久综合给合久久国产免费| 无忧传媒视频免费观看入口| 亚洲国产中文在线视频| 亚洲精品狼友在线播放| 免费人成网站在线播放| 美女视频黄的全免费视频 | 亚洲中文字幕成人在线| 成年人在线免费观看| 日本免费一区二区三区| 一本久久A久久免费精品不卡| 亚洲熟妇无码一区二区三区导航| 亚洲第一精品在线视频| 亚洲综合色婷婷七月丁香| 国产又黄又爽又刺激的免费网址| 亚洲性线免费观看视频成熟| 国内精品久久久久影院免费| 大片免费观看92在线视频线视频 | 狠狠色香婷婷久久亚洲精品| 久久国产亚洲观看| 亚洲精品国产精品乱码在线观看|