-
當(dāng)前位置:首頁(yè) > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
類和接口之間的關(guān)系稱為(類和接口的異同)
大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于類和接口之間的關(guān)系稱為的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。
開(kāi)始之前先推薦一個(gè)非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計(jì)劃、工作報(bào)告、論文、代碼、作文、做題和對(duì)話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準(zhǔn),寫出的就越詳細(xì),有微信小程序端、在線網(wǎng)頁(yè)版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、類與類之間的主要關(guān)系有幾種?它們的含義是什么
類與類之間的關(guān)系分為:
1.關(guān)聯(lián)關(guān)系
單向關(guān)聯(lián)
雙向關(guān)聯(lián)
自身關(guān)聯(lián)
多維關(guān)聯(lián)(N-ary Association)
2、泛化(Generalization)
3、依賴(Dependency)
4、聚合(Aggregation)
5、組合(Composite)
關(guān)聯(lián):兩個(gè)相對(duì)獨(dú)立的對(duì)象,當(dāng)一個(gè)對(duì)象的實(shí)例與另外一個(gè)對(duì)象的特定實(shí)例存在固定關(guān)系時(shí),這兩個(gè)對(duì)象之間就存在關(guān)聯(lián)關(guān)系。
下面來(lái)分別介紹一下類與類之間的關(guān)系:
1. 單向關(guān)聯(lián) 雙向關(guān)聯(lián)
我們假設(shè)有一個(gè)部門類和一個(gè)員工類為例來(lái)說(shuō)明
從部門的角度看是一對(duì)多的關(guān)系,從員工的角度看是多對(duì)一的關(guān)系,也就是說(shuō),站在不同的角度得到的結(jié)論是不一樣的,這樣,在查詢部門的時(shí)候,如果是一對(duì)多的關(guān)系,那么得
到的部門類就可以去訪問(wèn)員工表的屬性,如果查詢的是員工表,就可以訪問(wèn)部門的屬性,這樣從部門可以查員工,不能從員工查部門的或者是從員工查部門,不能從部門查于員工
的就是單向關(guān)聯(lián),如果既可以從部門查詢員工,也可以從員工查部門,那么這是雙向關(guān)聯(lián)。
2.自身關(guān)聯(lián)
我們以書為類,書可以包括很多種類型的書,假設(shè)書籍下包括了一個(gè)歷史類的書,而歷史類的書又包括古代歷史,現(xiàn)代歷史,而古代歷史又包括古代的某一個(gè)朝代的歷史,就
這樣依次類推,可以形成一個(gè)無(wú)限的自關(guān)聯(lián)。
3.多維關(guān)聯(lián)
多維關(guān)聯(lián)是多個(gè)對(duì)象存在的關(guān)聯(lián),比如部門下既可以有員工,還同時(shí)要給員工薪資,這個(gè)我不懂,沒(méi)有用到過(guò)。
4. 泛化
在 UML 中, 泛化關(guān)系用來(lái)表示類與類, 接口與接口之間的繼承關(guān)系。更準(zhǔn)確的說(shuō)是不僅有繼承關(guān)系,還有類和接口的實(shí)現(xiàn)關(guān)系。
5. 依賴
對(duì)于兩個(gè)相對(duì)獨(dú)立的系統(tǒng),當(dāng)一個(gè)系統(tǒng)負(fù)責(zé)構(gòu)造另一個(gè)系統(tǒng)的實(shí)例,或者依賴另一個(gè)系統(tǒng)的服務(wù)時(shí),這兩個(gè)系統(tǒng)之間體現(xiàn)為依賴關(guān)系.
舉個(gè)簡(jiǎn)單的例子就是:比如自行車Bicycle和打氣筒Pump,當(dāng)自行車需要打氣的時(shí)候就要用到打氣筒。這屬性依賴關(guān)系
6. 聚合
聚合關(guān)聯(lián)是一種特殊的關(guān)聯(lián). 它表示類間的關(guān)系是整體與部分的關(guān)系. 簡(jiǎn)言之: 關(guān)聯(lián)關(guān)系中的一個(gè)類描述了一個(gè)較大的事物, 它由較小的事物組成.
比如:
一個(gè)圖書館可以有十萬(wàn)本書,也可以一本也沒(méi)有。但空的圖書館還是圖書館。這是聚合
7. 組合
整件擁有部件的生命周期, 所以整件刪除時(shí), 部件一定會(huì)跟著刪除. 而且, 多個(gè)整件不可以同時(shí)共享同一個(gè)部件。
比如:
一個(gè)車(我們平常能看到的普通的交通工具車)有輪子,有的車是四輪子的,有的車是三輪的,自行車是二輪的,還有獨(dú)輪車,但車至少要有一個(gè)輪子,不然就不是車
。這是組合關(guān)系。
讀到這里,大家可能有一個(gè)疑問(wèn),聚合和組合的區(qū)別又是什么呢?
聚合關(guān)系是當(dāng)描述一個(gè)大的事物時(shí),大的事務(wù)可以包含小的事務(wù),也可以不包含小的事物,比如圖書館和圖書,而組合是一個(gè)大的事物的存在必須是由多個(gè)小的事務(wù)組成的
,缺省了小的事務(wù)是不可以的。
組合關(guān)系是更強(qiáng)勢(shì)的聚合。
二、Java中抽象類與接口的關(guān)系
在Java語(yǔ)言中,接口(Interface)是對(duì)符合接口需求的類的一套規(guī)范。接口與包相似,也是用來(lái)組織應(yīng)用中的各類并調(diào)節(jié)它們的相互關(guān)系的一種結(jié)構(gòu),更準(zhǔn)確地說(shuō),接口是用來(lái)實(shí)現(xiàn)類間多重繼承功能的結(jié)構(gòu) 1 接口概念 接口主要作用是可以幫助實(shí)現(xiàn)類似于類的多重繼承的功能。在Java中,出于簡(jiǎn)化程序結(jié)構(gòu)的考慮,不再支持類間的多重繼承而只支持單重繼承,即一個(gè)類至多只能有一個(gè)直接父類。然而在解決實(shí)際問(wèn)題的過(guò)程中,僅僅依靠單重繼承在很多情況下都不能將問(wèn)題的復(fù)雜性表述完整,需要其他的機(jī)制作為輔助。 2 接口聲明 Java中聲明接口的語(yǔ)法如下: [public] interface 接口名 [extends 父接口名列表] { //接口體; //常量域聲明
[public] [static] [final] 域類型 域名=常量值;
//抽象方法聲明
[public] [abstract]返回值 方法名(參數(shù)列表)[throw異常列表]; } 從上面的語(yǔ)法規(guī)定可以看出,定義接口與定義類非常相似,實(shí)際上完全可以把接口理解成為一種特殊的類,接口是由常量和抽象方法組成的特殊類 (1)接口中的屬性都是用final修飾的常量, (2)接口中的方法都是用abstract修飾的抽象方法,在接口中只能給出這些抽象方法的方法名、返回值和參數(shù)列表,而不能定義方法體,即僅僅規(guī)定了一組信息交換、傳輸和處理的“接口” 2 接口的實(shí)現(xiàn) 一個(gè)類要實(shí)現(xiàn)某個(gè)或某幾個(gè)接口時(shí),有如下的步驟和注意事項(xiàng): (1)在類的聲明部分,用implements關(guān)鍵字聲明該類將要實(shí)現(xiàn)哪些接口; 如下: class類名implements接口{ } (2)如果實(shí)現(xiàn)某接口的類不是abstract的抽象類,則在類的定義部分必須實(shí)現(xiàn)指定接口的所有抽象方法,即為所有抽象方法定義方法體,而且方法頭部分應(yīng)該與接口中的定義完全一致,即有完全相同的返回值和參數(shù)列表; (3)如果實(shí)現(xiàn)某接口的類是abstract的抽象類,則它可以不實(shí)現(xiàn)該接口所有的方法。 (4)一個(gè)類在實(shí)現(xiàn)某接口的抽象方法時(shí),必須使用完全相同的方法頭。 (5)接口的抽象方法,其訪問(wèn)限制符都已指定是public,所以類在實(shí)現(xiàn)方法時(shí),必須顯式地使用public修飾符。 一個(gè)接口的定義由關(guān)鍵字interface開(kāi)始以包含pubicfinalstatic數(shù)據(jù)。但這不是必須的,即子類也可以使用一個(gè)方并包含一套publicabstract方法,接口也可為使用接口,一個(gè)類必須聲明實(shí)現(xiàn)(關(guān)鍵字implements)接口,指定的參數(shù)個(gè)數(shù)和返回類型定義每個(gè)方法。當(dāng)沒(méi)有缺省的實(shí)現(xiàn)用來(lái)繼承時(shí),通常使用接口而不使用抽象類。 當(dāng)某個(gè)類實(shí)現(xiàn)一個(gè)接口時(shí),也有同樣的“是一個(gè)”繼承性關(guān)系。并且必須根據(jù)接口中為實(shí)現(xiàn)一個(gè)以上的接口,只要在類定義中的關(guān)鍵字implements后面列出接口名逗號(hào)分隔。
三、java中關(guān)于抽象類和接口說(shuō)法錯(cuò)誤的是()
抽象類的子類必須實(shí)現(xiàn)父類中的抽象方法。
抽象類不能被實(shí)例化,實(shí)例化的工作應(yīng)該交由它的子類來(lái)完成,只需要有一個(gè)引用即可,抽象方法必須由子類來(lái)進(jìn)行重寫。只要包含一個(gè)抽象方法的抽象類,該方法必須要定義成抽象類,不管是否還包含有其他方法。
接口不再像類一樣用關(guān)鍵字 extends去繼承,而是用 implements 去實(shí)現(xiàn),也就是說(shuō)類和接口的關(guān)系叫做實(shí)現(xiàn),(例如A類實(shí)現(xiàn)了B接口,那么成為A為B接口的實(shí)現(xiàn)類。而類與類之間的繼承,叫做A類繼承了B類,其中B類即為A類的父類)。
擴(kuò)展資料:
注意事項(xiàng):
不管是RPC調(diào)用還是對(duì)于第三方服務(wù)的調(diào)用,都不能想當(dāng)然的認(rèn)為可用性是100%的。不允許出現(xiàn)服務(wù)調(diào)用超時(shí)和重試,將會(huì)對(duì)應(yīng)用程序的穩(wěn)定性和性能造成不利的影響。
網(wǎng)絡(luò)服務(wù)隨處可見(jiàn),從而使得黑客可以輕易地利用進(jìn)行拒絕服務(wù)攻擊。所以設(shè)計(jì)系統(tǒng)時(shí),需要遵循最小權(quán)限原則,采用白名單等方式。
參考資料來(lái)源:百度百科-java接口
參考資料來(lái)源:百度百科-java抽象類
四、java開(kāi)發(fā)的項(xiàng)目中模塊、包、類、接口的關(guān)系是什么?
一個(gè)模塊中有多個(gè)包;一個(gè)包中可以有多個(gè)類;一個(gè)類(接口類)中可以有多個(gè)抽象方法;一個(gè)類(實(shí)現(xiàn)類,繼承自接口類)中可以有多個(gè)方法。推薦選擇千鋒教育,千鋒教育采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,非常值得選擇。
java項(xiàng)目開(kāi)發(fā)具體流程:
第一、需求分析: 列出功能點(diǎn)、界面要求,實(shí)現(xiàn)原型 實(shí)用軟件 :axure,確定施工周期,工期安排軟件:excel或者Steelray Project Viewer。
第二、概要設(shè)計(jì):根據(jù)原型寫出大致設(shè)計(jì),理清實(shí)現(xiàn)邏輯。
第三、 詳細(xì)設(shè)計(jì):做不做都行,沒(méi)事做做也可以:詳細(xì)列出所有功能的偽代碼實(shí)現(xiàn)。
第四、代碼實(shí)現(xiàn):做網(wǎng)站建議用MyEclipse+mysql ,框架 SSH。
第五、測(cè)試:功能、頁(yè)面效果是否實(shí)現(xiàn)。
第六、使用說(shuō)明:寫使用說(shuō)明。
想要了解更多java開(kāi)發(fā)的相關(guān)信息,推薦咨詢千鋒教育。千鋒Java現(xiàn)已擁有成熟獨(dú)立的項(xiàng)目庫(kù),項(xiàng)目均1:1引進(jìn)大廠項(xiàng)目,授課采用 CREA 項(xiàng)目研發(fā)模型,即 Cooperation、Research、Exercise、Alliance,以項(xiàng)目促進(jìn)高質(zhì)量教學(xué)。多場(chǎng)景,多學(xué)科聯(lián)動(dòng)為學(xué)員的技能實(shí)戰(zhàn)提供高度還原的真實(shí)演練場(chǎng),充分賦能學(xué)員簡(jiǎn)歷價(jià)值,打造企業(yè)直聘班,得到廣大學(xué)員一致認(rèn)可。
以上就是關(guān)于類和接口之間的關(guān)系稱為相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。
推薦閱讀:
類和接口的關(guān)系(類和接口的關(guān)系是什么)
抖音公會(huì)怎么創(chuàng)建(創(chuàng)建抖音公會(huì)需要什么條件)