黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 淺析Java接口繼承

淺析Java接口繼承

更新時(shí)間:2020-10-16 17:32:52 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1482次

說(shuō)到Java接口繼承,我們必須先說(shuō)說(shuō)接口,接口是一種高度的抽象,里面會(huì)規(guī)定一些將要實(shí)現(xiàn)的行為或只作為一種標(biāo)記,如Java中的Serializable接口,它比抽象類(lèi)更加抽象。


然后說(shuō)一說(shuō)對(duì)繼承的理解,繼承就是泛化。在由接口組成的繼承層級(jí)中,從上往下看,是由抽象到具體的過(guò)程。通過(guò)繼承我們可以保留父接口中定義的行為,同時(shí)可以對(duì)其進(jìn)行擴(kuò)展。整個(gè)繼承層級(jí),其實(shí)是類(lèi)似樹(shù)結(jié)構(gòu)的,樹(shù)的層級(jí)越深,行為就越復(fù)雜,能做的事情就更多。


上一層是對(duì)下一層共性的抽象,下層是對(duì)上層不同維度的演進(jìn)。以Java的集合框架為例,如下圖:

image.png


最開(kāi)始只有一個(gè)Iterable,這里只是要返回一個(gè)迭代器,它可以用來(lái)處理一些可以迭代的對(duì)象,可以在foreach或者while循環(huán)中迭代。那么哪些對(duì)象是可以迭代的呢,于是就有了第二層接口,Collection、Directory Stream(JDK1.7新增nio模塊中)都是可以迭代的。

接下來(lái)再往深層考慮,什么樣的算是Collection, JDK中給出定義Collection表示一組對(duì)象,稱(chēng)之為元素,有些集合允許重復(fù),有些不允許,有些無(wú)序,有些有序。原文中這樣描述:

A collection represents a group of objects, known as its elements. Some collections allow duplicate elements and others do not. Some are ordered and others unordered.


根據(jù)這些描述又有了下一層,Set、List、Queue, 這是針對(duì)Collection中不同類(lèi)型的集合的抽象,其內(nèi)部會(huì)聲明一些特定的方法:

我們發(fā)現(xiàn)有很多不同的方法,這個(gè)就是對(duì)Collection不同維度的演進(jìn)。職責(zé)不斷的細(xì)化,對(duì)于其他的接口,情況也是一樣的。這點(diǎn)和畫(huà)家在創(chuàng)作時(shí)先畫(huà)出輪廓,然后再一點(diǎn)一點(diǎn)的勾勒細(xì)節(jié)有異曲同工之妙。

那么接口繼承有什么意義呢?不妨這樣考慮,加入假如沒(méi)有接口繼承,會(huì)變成什么樣子?假如不讓接口繼承,那么所有接口的方法都放在一個(gè)接口中,這時(shí)只有一個(gè)接口,那么這個(gè)接口規(guī)定的行為不覺(jué)得有點(diǎn)太多了么,既要負(fù)責(zé)返回一個(gè)迭代器,又要是一個(gè)集合,而且既要定義有序集合的行為,又要定義無(wú)序集合的行為,既要定義有重復(fù)元素的集合的行為,又要定義無(wú)重復(fù)元素集合的行為。


假設(shè)只有一個(gè)方法來(lái)定義集合的行為,請(qǐng)問(wèn)這個(gè)方法該怎么實(shí)現(xiàn)。千萬(wàn)不要說(shuō)加上一大堆if else的判斷語(yǔ)句,如果這時(shí)候有新的集合類(lèi)型加入了,難道再加上一個(gè)if else語(yǔ)句么?無(wú)疑這是一種糟爛的設(shè)計(jì)。反觀通過(guò)接口繼承產(chǎn)生的層級(jí)接口,層次分析,職責(zé)分明,Set就是Set,List就是List,想要實(shí)現(xiàn)那種結(jié)構(gòu)直接實(shí)現(xiàn)對(duì)應(yīng)的接口即可。換個(gè)角度看,通過(guò)接口繼承,可以重新定義上層已經(jīng)定義的行為,也不會(huì)影響到同一層級(jí)的其他接口中的行為。


在簡(jiǎn)單的系統(tǒng)中,當(dāng)然并不一定用到接口繼承,但一個(gè)相對(duì)復(fù)雜的系統(tǒng)中,如JDK的集合框架,通過(guò)接口繼承可以稱(chēng)得上是一種良好的設(shè)計(jì),也是對(duì)整個(gè)系統(tǒng)結(jié)構(gòu)的一個(gè)提升。


好了,對(duì)Java接口繼承的相關(guān)知識(shí)就先講解就到這里,欲知后事如何,請(qǐng)觀看本站的Java零基礎(chǔ)教程,帶你全方位學(xué)習(xí)Java基礎(chǔ),為你的Java夢(mèng)想揚(yáng)帆起航!


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 综合网插 | 久久第一页 | 中国一级做a爱片免费 | 国内精自品线一区91 | 直接观看黄网站免费视频 | 深夜国产成人福利在线观看女同 | 亚洲综合色视频在线观看 | 日本精品高清一区二区2021 | 美国十次狠狠色综合 | 成人免费福利 | 亚洲一区在线播放 | 日韩黄色在线观看 | 国产精品视频偷伦精品视频 | 黄色一级片在线免费观看 | 中文字幕在线网 | 性欧美成人免费观看视 | 中文字幕有码在线播放 | 色天使色婷婷丁香久久综合 | 国产成人综合久久亚洲精品 | 999久久久国产精品 999热成人精品国产免 | 国产亚洲一区在线 | 99爱视频| 日韩欧美精品中文字幕 | 国产在线视频专区 | 精品国产日韩亚洲一区二区 | 人人干人人舔 | 精品视频99| 中文字幕日韩欧美一区二区三区 | 国产精品午夜波多野结衣性色 | 亚洲国产成人久久一区www | 最好看的中文字幕2019免费 | 最刺激黄a大片免费观看 | 欧美人人做人人爽人人喊 | 放一个特别黄的录像 | 日韩美女性行为免费视频 | 热热色网站 | 日韩欧美不卡 | 精品国产不卡一区二区三区 | 91视频一区二区三区 | 天堂资源吧 | 福利一区二区在线观看 |