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

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

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

    3278 7840

    1100111010001110 1001010010001010

    打破封裝的種類之一 :繼承

    一、繼承可以打破父類原有的封裝

    class Body
    {   String name;
        public Body(String name)
        {this.name=name;}
    }
    class ChildBody extends Body
    {
    private int age;
    }
    public class Test
    { public static void main(String[] args)
        {
           Body Tom=new ChildBody();
        }
    }

    看看這段代碼,有沒有問題呢?能不能通過編譯呢?

     

    父類,沒有錯誤。子類繼承了父類,并添加了私有成員變量age

     

    看似沒有錯誤。

     

    編譯錯誤,沒有找到0參數(shù)的構(gòu)造函數(shù)Body()

     

    這是為什么呢? 咱們沒有調(diào)用Body()呀

     

    只是直接調(diào)用的ChildBody()構(gòu)造函數(shù),而這個應(yīng)該是由編譯器提供的呀?

     

    為什么這次它沒有提供呢?傻了嗎?

     

    可是

     

    究竟為什么呢?困惑中

     

    其實 ,事實不像看到的那樣

     

    1 類如果沒構(gòu)造方法,編譯器會嘗試給創(chuàng)建一個默認的


    2 但是子類構(gòu)造方法要用父類的構(gòu)造方法來初始化其父類的東西


    3 這時候,編譯器就疑惑了,不能幫你合成了

    需要你顯示的來寫構(gòu)造方法

    所以看出一個問題:


    繼承雖然提高代碼復(fù)用,但是子類的編寫者需要了解父類的設(shè)計細節(jié),因此,繼承某種程度上

     

    打破了封裝

    我們對子類做一下修改,

    class ChildBody extends Body
    {
    private int age;

    public ChildBody(String name){

    super(name);

    }
    }

    而現(xiàn)在就應(yīng)該可以通過編譯了

    我的分析是

    我們用了super()句子,就是調(diào)用了父類的構(gòu)造方法

    而父類的此構(gòu)造方法,則要調(diào)用它自己的父類無參構(gòu)造函數(shù)

    大家知道類Body 隱式的繼承于Object

    也就是說,調(diào)用了Object的無參構(gòu)造函數(shù)

    自然是可以成功編譯了

    posted on 2009-06-15 16:06 逍遙晨空 閱讀(218) 評論(0)  編輯  收藏


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩欧美一区二区三区免费观看 | 亚洲性久久久影院| 中文字幕亚洲精品无码| 青青青国产在线观看免费网站| 亚洲国产精品久久久久网站 | 最新欧洲大片免费在线| 亚洲国产一区国产亚洲| 久久久久久夜精品精品免费啦| 亚洲熟女一区二区三区| 成在线人免费无码高潮喷水| 国产成人亚洲综合无码精品| 99在线热播精品免费99热| 亚洲av综合av一区| 在线日本高清免费不卡| 亚洲女人18毛片水真多| 成人最新午夜免费视频| 综合一区自拍亚洲综合图区| 亚洲乱码国产一区网址| 在线看片免费人成视频久网下载| 久久亚洲AV无码精品色午夜麻| 99在线观看免费视频| 亚洲成a人片在线不卡| 拔擦拔擦8x华人免费久久| 人人爽人人爽人人片av免费| 国产精品亚洲成在人线| 免费成人激情视频| 久久精品熟女亚洲av麻豆| 思思re热免费精品视频66 | 亚洲国产夜色在线观看| 在线视频观看免费视频18| 亚洲高清毛片一区二区| 亚洲精品亚洲人成在线观看下载| 天黑黑影院在线观看视频高清免费| 亚洲最大的成网4438| 好男人看视频免费2019中文 | 亚洲欧美成人一区二区三区| yy6080久久亚洲精品| 久久久久久影院久久久久免费精品国产小说 | 一二三四影视在线看片免费 | www永久免费视频| 亚洲日韩乱码中文无码蜜桃臀网站|