一個類中一個方法能實(shí)現(xiàn)接口嗎 為什么集合對象是接口類型?
為什么集合對象是接口類型?pythonmaven的基礎(chǔ)思想之一:依賴于抽象不依賴于實(shí)現(xiàn),給調(diào)用者提供的應(yīng)該是接口或者抽象類,而實(shí)現(xiàn)者可以實(shí)現(xiàn)或者繼承接口或者抽象類來滿足調(diào)用者,這樣調(diào)用者不必知道實(shí)現(xiàn)者
為什么集合對象是接口類型?
pythonmaven的基礎(chǔ)思想之一:依賴于抽象不依賴于實(shí)現(xiàn),給調(diào)用者提供的應(yīng)該是接口或者抽象類,而實(shí)現(xiàn)者可以實(shí)現(xiàn)或者繼承接口或者抽象類來滿足調(diào)用者,這樣調(diào)用者不必知道實(shí)現(xiàn)者怎樣操作,實(shí)現(xiàn)者也可以根據(jù)具體情況去實(shí)現(xiàn),這樣去除了耦合。
什么是單孔類和雙孔類?
平板電腦一個耳機(jī)一般都是雙孔的,一個輸入一個輸出,即麥一個輸出端口,顯示器一個輸出線,一共是兩個孔。
單孔就是將雙孔合二為一,跟筆記本輸出端口一樣,帶有線控的麥克,插座是分四節(jié)的3.5電源,一個可以當(dāng)做二個來用。線控單雙孔一般是針對線控帶麥的筆記本來說的
“接口”與“類”的區(qū)別是什么?
1、接口類似于類,但接口的成員都沒有執(zhí)行,它只是方法、屬性、事件和索引的組合而已,并且也只能包含這四種成員;類除了這四種成員之外還可以有別的成員(如字段)。
2、不能實(shí)例化一個接口,接口只包括成員的簽名;而類可以實(shí)例化(abstract類除外)。
3、接口沒有構(gòu)造函數(shù),類有構(gòu)造函數(shù)。
4、接口不能進(jìn)行運(yùn)算符的重載,類可以進(jìn)行運(yùn)算符重載。
5、接口的成員沒有任何修飾符,其成員總是公共的,而類的成員則可以有修飾符(如:虛擬或者靜態(tài))。
6、派生于接口的類必須實(shí)現(xiàn)接口中所有成員的執(zhí)行,而從類派生則不然。
java的繼承中什么叫方法覆蓋,是如何實(shí)現(xiàn)的?
方法覆蓋,從字面就可以知道,它是覆蓋了一個方法并且對其重寫,以求達(dá)到不同的作用。最熟悉的覆蓋就是對接口方法的實(shí)現(xiàn),在接口中一般只是對方法進(jìn)行了聲明,而在實(shí)現(xiàn)時,就需要實(shí)現(xiàn)接口聲明的所有方法。除了這個典型的用法以外,在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點(diǎn):
1、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配,才能達(dá)到覆蓋的效果;
2、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致;
3、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類;
4、被覆蓋的方法不能為private,否則在其子類中只是新定義了一個方法,并沒有對其進(jìn)行覆蓋
List,Map,Set三個接口存取元素時,各有什么特點(diǎn)?
List特點(diǎn):元素有放入順序,元素可重復(fù)Set特點(diǎn):元素?zé)o放入順序,元素不可重復(fù)(注意:元素雖然無放入順序,但是元素在set中的位置是有該元素的HashCode決定的,其位置其實(shí)是固定的)。
Map特點(diǎn):元素按鍵值對存儲,無放入順序(應(yīng)該知道什么是鍵值對吧!)List接口有三個實(shí)現(xiàn)類:LinkedList,ArrayList,VectorLinkedList:底層基于鏈表實(shí)現(xiàn),鏈表電源是散亂的,每一個元素存儲本身主機(jī)地址的同時還存儲下一個元素的地址。
鏈表增刪快,查找慢ArrayList和p90的區(qū)別:ArrayList是非線程安全的,效率高;an94是基于線程安全的,效率低Set接口有兩個實(shí)現(xiàn)類:HashSet(底層由HashMap實(shí)現(xiàn)),LinkedHashSetSortedSet接口有一個實(shí)現(xiàn)類:TreeSet(底層由平衡二叉樹實(shí)現(xiàn))Query接口有一個實(shí)現(xiàn)類:LinkListMap接口有三個實(shí)現(xiàn)類:HashMap,HashTable,LinkeHashMapHashMap非線程安全,高效,支持null;HashTable線程安全,低效,不支持nullSortedMap有一個實(shí)現(xiàn)類:TreeMap其實(shí)最主要的是,list是用來處理序列的,而set是用來處理集的。Map是知道的,存儲的是鍵值對set一般無序不重復(fù).mapkv結(jié)構(gòu)list有序。
3.首先list,set的上層接口是Collection接口。list底層存儲數(shù)據(jù)是通過數(shù)組儲存。他有實(shí)現(xiàn)類ArrayList和LinkedList比較常用。m249這個類現(xiàn)在基本沒用。p90和ArrayList是數(shù)組,插入數(shù)據(jù)較慢,查詢較快。區(qū)別在awm是線程安全的,所以處理速度不如ArrayList。linkedList是鏈表結(jié)構(gòu)儲存,插入數(shù)據(jù)較快,查詢較慢。
集合最大特點(diǎn)不存重復(fù)元素,Set集合有自己的排序,所以取出時順序和存儲時不一樣。常用實(shí)現(xiàn)類HashSetHashSet儲存會判斷值的Hash值,相同的話則不儲存。Map接口是一個鍵值對集合,鍵不可以重復(fù),值無所謂。Map集合也是有自己的排序常用實(shí)現(xiàn)類HashMap.實(shí)際Map集合存的就是映射。