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

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

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



    聯(lián)系博主          博客地圖
               

    接口和抽象類

    Posted on 2007-08-22 15:03 怎么羨慕天空的飛鳥 閱讀(441) 評(píng)論(2)  編輯  收藏 所屬分類: java
             在Java中看到接口,第一個(gè)想到的可能就是C++中的多重繼承和Java中的另外一個(gè)關(guān)鍵字abstract。從另外一個(gè)角度實(shí)現(xiàn)多重繼承是接口的功能之一,接口的存在可以使Java中的對(duì)象可以向上轉(zhuǎn)型為多個(gè)基類型,并且和抽象類一樣可以防止他人創(chuàng)建該類的對(duì)象,因?yàn)榻涌诓辉试S創(chuàng)建對(duì)象。 

    interface關(guān)鍵字用來(lái)聲明一個(gè)接口,它可以產(chǎn)生一個(gè)完全抽象的類,并且不提供任何具體實(shí)現(xiàn)。interface的特性整理如下:

    1.        接口中的方法可以有參數(shù)列表和返回類型,但不能有任何方法體。

    2.        接口中可以包含字段,但是會(huì)被隱式的聲明為staticfinal

    3.        接口中的字段只是被存儲(chǔ)在該接口的靜態(tài)存儲(chǔ)區(qū)域內(nèi),而不屬于該接口。

    4.        接口中的方法可以被聲明為public或不聲明,但結(jié)果都會(huì)按照public類型處理。

    5.        當(dāng)實(shí)現(xiàn)一個(gè)接口時(shí),需要將被定義的方法聲明為public類型的,否則為默認(rèn)訪問(wèn)類型,Java編譯器不允許這種情況。

    6.        如果沒(méi)有實(shí)現(xiàn)接口中所有方法,那么創(chuàng)建的仍然是一個(gè)接口。

    7.        擴(kuò)展一個(gè)接口來(lái)生成新的接口應(yīng)使用關(guān)鍵字extends,實(shí)現(xiàn)一個(gè)接口使用implements

    interface在某些地方和abstract有相似的地方,但是采用哪種方式來(lái)聲明類主要參照以下兩點(diǎn):

    1.        如果要?jiǎng)?chuàng)建不帶任何方法定義和成員變量的基類,那么就應(yīng)該選擇接口而不是抽象類。

    2.        如果知道某個(gè)類應(yīng)該是基類,那么第一個(gè)選擇的應(yīng)該是讓它成為一個(gè)接口,只有在必須要有方法定義和成員變量的時(shí)候,才應(yīng)該選擇抽象類。因?yàn)槌橄箢愔性试S存在一個(gè)或多個(gè)被具體實(shí)現(xiàn)的方法,只要方法沒(méi)有被全部實(shí)現(xiàn)該類就仍是抽象類。

     

    以上就是接口的基本特性和應(yīng)用的領(lǐng)域,但是接口絕不僅僅如此,在Java語(yǔ)法結(jié)構(gòu)中,接口可以被嵌套,既可以被某個(gè)類嵌套,也可以被接口嵌套。這在實(shí)際開(kāi)發(fā)中可能應(yīng)用的不多,但也是它的特性之一。需要注意的是,在實(shí)現(xiàn)某個(gè)接口時(shí),并不需要實(shí)現(xiàn)嵌套在其內(nèi)部的任何接口,而且,private接口不能在定義它的類之外被實(shí)現(xiàn)。



        核心: 勇敢進(jìn)取年輕的心

     

    Feedback

    # re: 接口和抽象類[未登錄](méi)  回復(fù)  更多評(píng)論   

    2007-08-23 01:48 by xmlspy
    2. 接口中可以包含字段,但是會(huì)被隱式的聲明為static和final。

    應(yīng)該是被隱式聲明為 public static final

    另外考慮一下接口或者抽象類是否可以new :)

    # re: 接口和抽象類  回復(fù)  更多評(píng)論   

    2007-08-23 18:02 by 怎么羨慕天空的飛鳥
    關(guān)于接口和抽象類是否可以實(shí)例化:
    接口和抽象類都不可以直接通過(guò)new的方式實(shí)例化,但可以做引用。
    比如:抽象類
    abstract class Abst1(){}
    class Abst2 extends Abst1{}
    Abst1 abst1 =new Abst2();
    這也許就是java里的多態(tài)吧。

    Copyright © 怎么羨慕天空的飛鳥

    主站蜘蛛池模板: 免费国产污网站在线观看15| 亚洲熟伦熟女新五十路熟妇| 久久精品国产亚洲AV麻豆网站 | 免费一级毛片不卡不收费| 亚洲冬月枫中文字幕在线看| 久久aa毛片免费播放嗯啊| 亚洲综合精品香蕉久久网| 美女的胸又黄又www网站免费| 女人18毛片特级一级免费视频| 亚洲精品美女在线观看| 亚洲免费人成在线视频观看| 红杏亚洲影院一区二区三区| 免费国产黄网站在线观看动图 | 久久精品国产免费观看| 亚洲国产高清视频| 免费久久人人爽人人爽av | 免费精品国自产拍在线播放| 日韩精品视频免费网址| 久久亚洲精品国产亚洲老地址| 91手机看片国产永久免费| 亚洲精品美女在线观看| 亚洲精品在线免费观看| 4444亚洲国产成人精品| 久久国产免费观看精品3| 亚洲欧洲日韩不卡| 久久免费看少妇高潮V片特黄| 国产V亚洲V天堂无码| 免费精品一区二区三区第35| 国产国拍亚洲精品mv在线观看 | 精品女同一区二区三区免费站| 亚洲欧洲在线观看| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 亚洲成A人片在线观看无码不卡| a级特黄毛片免费观看| 国产AV无码专区亚洲AV毛网站| 中文字幕乱码一区二区免费| 久久亚洲精品国产精品黑人| 四虎国产精品永久免费网址| 久久精品国产亚洲AV电影| 亚洲视频在线观看免费视频| 亚洲成a人片在线观看中文!!! |