溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java中怎么實(shí)現(xiàn)一個(gè)UML接口

發(fā)布時(shí)間:2021-08-09 14:49:58 來源:億速云 閱讀:168 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細(xì)講解有關(guān)Java中怎么實(shí)現(xiàn)一個(gè)UML接口,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

UML接口

Java編程語言中接口(Interface)的概念也能夠與UML概念匹配。UML中的接口是一種實(shí)現(xiàn)繼承的形式,但這種繼承形式與Java中通過關(guān)鍵詞extends實(shí)現(xiàn)的繼承有所不同。

在Java中,extends關(guān)鍵詞描述了一種繼承形式,它既繼承接口也繼承行為。這種類型的繼承有時(shí)被稱為Sub-classing。與其他的面象對象編程語言不同,Java類只能從一個(gè)類繼承。許多時(shí)候,設(shè)計(jì)UML圖的人熟悉多種編程語言,常常會引入多重繼承的思想,例如C++的多重繼承思想。從已有的Java代碼生成UML圖(這個(gè)過程稱為反向工程)不會帶來多重繼承的問題,但如果要求一個(gè)Java程序員去實(shí)現(xiàn)一個(gè)帶有多重繼承的UML類圖,就會出現(xiàn)問題。如果多重繼承中的超類是純抽象類,這部分類可以用Java的接口來描述,但是,如果只做這種轉(zhuǎn)換不足以把UML類圖中的多重繼承全部轉(zhuǎn)換成單重繼承,這時(shí)就必須修改UML類圖重新建模了。

雖然Java不支持C++之類語言那樣的多重繼承,但它支持實(shí)現(xiàn)多重UML接口。這種由Java關(guān)鍵詞implements聲明的繼承只繼承接口,這種繼承有時(shí)被稱作Sub-typing。在UML中,實(shí)現(xiàn)接口的類與接口定義之間的關(guān)系叫做Realization關(guān)系,用一個(gè)虛線封閉箭頭表示,從實(shí)現(xiàn)接口的類指向UML接口。接口本身的UML圖與普通類一樣,但它的名字上面要加上“<>”。圖四由圖一修改而成,Payment類被一個(gè)接口取代。(關(guān)于Realization名稱的說明:Realization最常見的中文譯名是“實(shí)現(xiàn)”。但是,Java的implements也叫做“實(shí)現(xiàn)”。為避免混淆,本文中凡是出現(xiàn)Realization的地方一律直接使用英文)。

Java中UML接口可以從一個(gè)或者多個(gè)其他接口擴(kuò)展。
UML一般化關(guān)系(實(shí)線封閉箭頭)可用來描述這種關(guān)系,如圖五所示。UML還支持另一種接口符號,即用圓圈表示接口(加上連線之后就成了棒棒糖的樣子),但這種表示法多用于UML組件圖,在UML類圖中比較少見。如果UML圖規(guī)模較大,有大量的類實(shí)現(xiàn)一個(gè)常用接口,整個(gè)UML圖可能亂成一團(tuán)糟?!禞avaDesign》一書提出了一種簡化方法,后來又被《StreamlinedObjectModeling》一書的作者采用,這就是在實(shí)現(xiàn)接口的類中,用接口的名字替代從接口繼承的方法,不過這不屬于標(biāo)準(zhǔn)方法。遺憾的是,目前似乎還沒有工具支持這種轉(zhuǎn)換。

關(guān)于Java中怎么實(shí)現(xiàn)一個(gè)UML接口就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI