<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)

    相冊

    天氣預報

    常去論壇

    搜索

    •  

    積分與排名

    • 積分 - 38601
    • 排名 - 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 黑蝙蝠 閱讀(674) 評論(1)  編輯  收藏 所屬分類: J2SE(基礎)
    評論:

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
     
    Copyright © 黑蝙蝠 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 国产亚洲精品精品国产亚洲综合| 国产高清免费视频| 国产精品视_精品国产免费| 亚洲精品中文字幕无乱码| 99在线观看精品免费99| 亚洲一区二区电影| 亚洲午夜免费视频| 亚洲色偷偷偷网站色偷一区| 99热在线免费观看| 亚洲综合小说久久另类区| 亚洲无砖砖区免费| 亚洲一区二区三区国产精品无码| 成人午夜免费福利视频| 亚洲日韩一区二区一无码| 全免费A级毛片免费看网站| 国产精品亚洲精品日韩电影| 全部免费毛片在线| 中文字幕永久免费| 亚洲伦理一区二区| 无人在线观看免费高清视频 | 久章草在线精品视频免费观看| 亚洲人成影院在线无码按摩店| 精品免费tv久久久久久久| 亚洲美女精品视频| 日韩人妻无码免费视频一区二区三区| 亚洲AV网一区二区三区 | 亚洲看片无码在线视频| 国产精品免费看久久久无码| 本道天堂成在人线av无码免费| 亚洲成A人片在线观看无码不卡| 美女内射毛片在线看免费人动物| 亚洲一卡一卡二新区无人区| 日韩精品亚洲专区在线观看| 羞羞视频免费网站在线看| 激情内射亚洲一区二区三区| 成年丰满熟妇午夜免费视频| 一级看片免费视频囗交| 亚洲人成在线影院| 日本牲交大片免费观看| 人妻在线日韩免费视频| 国产亚洲精品成人AA片|