摘要:一抽象類與接口參數(shù)抽象類接口默認的方法實現(xiàn)它可以有默認的方法實現(xiàn)接口完全是抽象的。它根本不存在方法的實現(xiàn)實現(xiàn)子類使用關(guān)鍵字來繼承抽象類。抽象類是對整個類整體進行抽象,包括屬性行為,但是接口卻是對類局部行為進行抽象。
一:抽象類與接口
參數(shù) | 抽象類 | 接口 |
---|---|---|
默認的方法實現(xiàn) | 它可以有默認的方法實現(xiàn) | 接口完全是抽象的。它根本不存在方法的實現(xiàn) |
實現(xiàn) | 子類使用extends關(guān)鍵字來繼承抽象類。如果子類不是抽象類的話,它需要提供抽象類中所有聲明的方法的實現(xiàn)。 | 子類使用關(guān)鍵字implements來實現(xiàn)接口。它需要提供接口中所有聲明的方法的實現(xiàn) |
構(gòu)造器 | 抽象類可以有構(gòu)造器 | 接口不能有構(gòu)造器 |
與正常Java類的區(qū)別 | 除了你不能實例化抽象類之外,它和普通Java類沒有任何區(qū)別 | 接口是完全不同的類型 |
訪問修飾符 | 抽象方法可以有public、protected和default這些修飾符 | 接口方法默認修飾符是public。你不可以使用其它修飾符。 |
main方法 | 抽象方法可以有main方法并且我們可以運行它 | 接口沒有main方法,因此我們不能運行它。 |
多繼承 | 抽象方法可以繼承一個類和實現(xiàn)多個接口 | 接口只可以繼承一個或多個其它接口 |
速度 | 它比接口速度要快 | 接口是稍微有點慢的,因為它需要時間去尋找在類中實現(xiàn)的方法。 |
添加新方法 | 如果你往抽象類中添加新的方法,你可以給它提供默認的實現(xiàn)。因此你不需要改變你現(xiàn)在的代碼。 | 如果你往接口中添加方法,那么你必須改變實現(xiàn)該接口的類。 |
面試中的相關(guān)的問題:
抽象類和接口之間的區(qū)別?
什么時候創(chuàng)建抽象類?什么時候創(chuàng)建接口?
設(shè)計框架時該如何選擇?
不錯的文章:
https://juejin.im/entry/59fa7...
抽象類是對一種事物的抽象,即對類抽象,而接口是對行為的抽象。抽象類是對整個類整體進行抽象,包括屬性、行為,但是接口卻是對類局部(行為)進行抽象。舉個簡單的例子,飛機和鳥是不同類的事物,但是它們都有一個共性,就是都會飛。那么在設(shè)計的時候,可以將飛機設(shè)計為一個類Airplane,將鳥設(shè)計為一個類Bird,但是不能將 飛行 這個特性也設(shè)計為類,因此它只是一個行為特性,并不是對一類事物的抽象描述。此時可以將 飛行 設(shè)計為一個接口Fly,包含方法fly( ),然后Airplane和Bird分別根據(jù)自己的需要實現(xiàn)Fly這個接口。然后至于有不同種類的飛機,比如戰(zhàn)斗機、民用飛機等直接繼承Airplane即可,對于鳥也是類似的,不同種類的鳥直接繼承Bird類即可。從這里可以看出,繼承是一個 "是不是"的關(guān)系,而 接口 實現(xiàn)則是 "有沒有"的關(guān)系。如果一個類繼承了某個抽象類,則子類必定是抽象類的種類,而接口實現(xiàn)則是有沒有、具備不具備的關(guān)系,比如鳥是否能飛(或者是否具備飛行這個特點),能飛行則可以實現(xiàn)這個接口,不能飛行就不實現(xiàn)這個接口。
二:內(nèi)部類內(nèi)部類,主要是設(shè)計出來用來解決java中所‘缺少’的,多重繼承的概念的。
至于細節(jié)等以后再回過頭來看,現(xiàn)在沒有實際應(yīng)用場景談也只能是扯概念。
三:string類,array類文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/77677.html
摘要:操作之連接以及簡單操作下載對應(yīng)的驅(qū)動包下載創(chuàng)建一個連接類連接主機地址端口號登錄密碼連接服務(wù)器權(quán)限認證連接完成會返回緩存鏈接錯誤查詢所有中的查詢所有的為通配符清除所有的中的是清除所有的的命令如果清理完成,會返回完整的代碼聲明對象測試地址端口密 Java操作Redis之連接以及簡單操作 1.下載對應(yīng)的驅(qū)動包 下載 jedis.jar :https://mvnrepository.com/a...
摘要:,用于調(diào)用垃圾收集器,在調(diào)用時,垃圾收集器將運行以回收未使用的內(nèi)存空間。然而調(diào)用附帶一個免責(zé)聲明,無法保證對垃圾收集器的調(diào)用。所以并不能說是完美主動進行了垃圾回收。 歡迎進入JAVA基礎(chǔ)課程 博客地址:https://blog.csdn.net/houjiyu...本系列文章將主要針對JAVA一些基礎(chǔ)知識點進行講解,為平時歸納所總結(jié),不管是剛接觸JAVA開發(fā)菜鳥還是業(yè)界資深人士,都希...
摘要:是一個由寫的存儲系統(tǒng)。是一個開源的使用語言編寫遵守協(xié)議支持網(wǎng)絡(luò)可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統(tǒng)。Redis是一個開源的使用ANSI C語言編寫、遵...
摘要:是一個由寫的存儲系統(tǒng)。是一個開源的使用語言編寫遵守協(xié)議支持網(wǎng)絡(luò)可基于內(nèi)存亦可持久化的日志型數(shù)據(jù)庫,并提供多種語言的。它通常被稱為數(shù)據(jù)結(jié)構(gòu)服務(wù)器,因為值可以是字符串哈希列表集合和有序集合等類型。 REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統(tǒng)。Redis是一個開源的使用ANSI C語言編寫、遵...
閱讀 1164·2021-11-15 18:00
閱讀 2965·2021-09-22 15:18
閱讀 2026·2021-09-04 16:45
閱讀 817·2019-08-30 15:55
閱讀 4013·2019-08-30 13:10
閱讀 1432·2019-08-30 11:06
閱讀 2055·2019-08-29 12:51
閱讀 2372·2019-08-26 13:55