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

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

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

    Java-黑蝙蝠  
    My name is mozart0
    外表澀苦但留醇香于舌尖
    online
    Adult Dating
    公告
    • 多一份自信,多一份成功!
      多看一本書,多一份機遇!
      多一次微笑,多一份快樂!
    日歷
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567
    統計
    • 隨筆 - 10
    • 文章 - 0
    • 評論 - 32
    • 引用 - 0

    導航

    常用鏈接

    留言簿(6)

    隨筆分類(10)

    隨筆檔案(10)

    相冊

    天氣預報

    常去論壇

    搜索

    •  

    積分與排名

    • 積分 - 38623
    • 排名 - 1191

    最新評論

    閱讀排行榜

    評論排行榜

     

    ??????? 炎熱的夏天,玩了大半個月,心里滿愧疚的,所以打算不在放縱自己,認真地學習java。
    這次復習了java的面向對象機制,主要內容有強制轉型(casting)和自動轉型(promotion),以及覆蓋(override)的2中區別,變量覆蓋和方法覆蓋。下面看例子啊:

    import ? static ?java.lang.System. * ;

    class ?Bat {
    ????
    int ?wing;
    ????
    private ?String?color;

    ????
    public ?Bat() {
    ????????wing?
    = ? 2 ?;
    ????????color?
    = ? " red " ;
    ????}


    ????
    public ? void ?sayHi() {
    ????????System.out.println(
    " Hi?,Bat?you?have " + wing + " ?wings " );
    ????}


    ????
    public ? void ?sayWhat() {
    ????????System.out.println(
    " What?will?i?say? " );
    ????}


    ????
    public ?String?getColor() {
    ????????
    return ?color;
    ????}


    }


    class ?BlackBat? extends ?Bat {
    ????
    ????
    int ?wing; // 遮蔽了超類中的2個變量
    ???? private ?String?color;

    ????
    public ?BlackBat() {
    ????????wing?
    = ? 4 ;
    ????????color?
    = ? " Black " ;
    ????}
    ????
    ????????
    ????
    public ? void ?sayHi() {
    ????????System.out.println(
    " Hi?,Bat?you?have?4?wings " + wing);
    ????}
    ????

    ????
    public ? void ?getName() {
    ????????System.out.println(
    " My?Name?is?BlackBat " );
    ????????
    ????}


    ????
    // ?去掉前面的注釋符號?那么就改寫了父類的方法?返回的是自己的顏色?即Black
    ????
    // public?String?getColor(){
    ????
    // ????return?color;
    ????
    // }

    }


    public ? class ?TestAB {
    ????
    public ? static ? void ?main(String[]?args)? {
    ????????Bat?x?
    = ? new ?Bat();
    ????????BlackBat?y?
    = ? new ?BlackBat();
    ????????x.sayHi();
    ????????y.sayHi();

    ????????System.out.println(
    " I'm?Bat?,my?color?is? " + x.getColor());
    ????????System.out.println(
    " I'm?BlackBat?,my?color?is? " + y.getColor());
    ????????
    // 這里調用的依然是父類的方法,返回為red,因為子類中并未改寫該方法,雖然它遮蔽了color變量
    ????????
    // 如果把BlackBat?中getColor()?的注釋去掉?就會顯示的是Black
    ????????
    ????????
    // ?tiger中?實現和c語言類似的輸出語句。
    ????????out.printf( " I'm?BlackBat?,?my?color?is?%s?.%n " ,y.getColor());

    ????????System.out.println(
    " Yes?,?I?am?from?super " + ((Bat)y).wing + x.getColor());
    ????????
    // 和方法不同的是:強制轉換可訪問父類的變量
    ????????((Bat)y).sayHi(); // 這里雖然強制轉換為父類?但是還是調用的子類的。強制轉換也不能訪問

    ????????Bat?z?
    = ? new ?BlackBat(); // 自動轉型?子類轉換為超類????
    ????????
    // z.getName(); // 子類中雖然有這個方法?但是轉型為超類后?超類中并沒這個方法?cannot?find?symbol
    ????
    ????????((BlackBat)z).getName();
    ????????
    // 這樣就對了,強制轉換為子類,這種轉換通常成為窄轉換,即父類向子類的轉換。
    ????????
    ????????z.sayHi();
    // 因為超類中的方法被改寫?所以調用的也是子類的方法
    ????????z.sayWhat(); // 超類中的方法未被改寫?所以還是調用超類中的方法
    ????}

    }

    總結:子類向父類類型的轉換屬于 自動類型轉換
    ??????????? 父類向子類類型的轉換屬于 強制類型轉換
    ????????????覆蓋:分為變量覆蓋和方法覆蓋,如果父類變量被覆蓋后,可通過強制轉換成父類來訪問父類的變量,還可通過super.變量名來訪問。而父類的方法被覆蓋后,只能通過super.方法名()來訪問,不能像變量那樣通過強制轉換來訪問父類的方法。


    @ Author 黑蝙蝠 http://m.tkk7.com/blackbat

    posted on 2006-07-24 18:31 黑蝙蝠 閱讀(675) 評論(1)  編輯  收藏 所屬分類: J2SE(基礎)
    評論:
     
    Copyright © 黑蝙蝠 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 亚洲乱码一二三四区麻豆| 亚洲AV无码国产在丝袜线观看| 免费a级黄色毛片| JLZZJLZZ亚洲乱熟无码| 国产亚洲综合网曝门系列| 久久亚洲精品国产精品| 亚洲一区二区三区高清不卡| 极品色天使在线婷婷天堂亚洲| 久久WWW免费人成—看片| 最近最新高清免费中文字幕| 全免费a级毛片免费看不卡| 中文字幕第13亚洲另类| 中文字幕亚洲综合久久2| 亚洲AV无码一区二区三区性色| 丰满妇女做a级毛片免费观看 | 亚洲1234区乱码| 看免费毛片天天看| 欧洲人免费视频网站在线| 成年在线观看网站免费| jlzzjlzz亚洲乱熟在线播放| 亚洲精品免费在线视频| 国产偷国产偷亚洲高清人| 香港a毛片免费观看| 日韩免费视频一区| 国产l精品国产亚洲区在线观看| 亚洲www在线观看| 国产精品美女久久久免费 | 亚洲国产福利精品一区二区| 美景之屋4在线未删减免费| 一区二区三区福利视频免费观看| 免费看少妇作爱视频| 亚洲成AV人片在线播放无码| 亚洲欧洲无码一区二区三区| 久久er国产精品免费观看2| 手机在线毛片免费播放| 日本亚洲视频在线 | 久久免费福利视频| 亚洲AV日韩精品一区二区三区| 亚洲一二成人精品区| 日韩毛片在线免费观看| 91香蕉成人免费网站|