HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    類和接口的關(guān)系(類和接口的關(guān)系是什么)

    發(fā)布時(shí)間:2023-03-19 01:46:49     稿源: 創(chuàng)意嶺    閱讀: 52        問(wè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)系是什么)

    一、Java實(shí)現(xiàn)類和接口的關(guān)系

    你可以把接口看成是一種職業(yè),比如說(shuō)教師。

    你把實(shí)現(xiàn)類看成是小學(xué)教師,或是中學(xué)教師。

    無(wú)論是小學(xué)教師還是中學(xué)教師,他們都是教師,都‘繼承’了教師。

    你對(duì)外封裝時(shí)用接口,就好比是讓你選擇行業(yè),你只能選擇教師,而一般不會(huì)在諸多行業(yè)中還列舉出小學(xué),中學(xué)等等。

    而實(shí)現(xiàn)類也表現(xiàn)出了多態(tài)性,因?yàn)樵镜闹挥薪處熯@一個(gè)職業(yè),然后因?yàn)榻淌趯W(xué)生的不同,就出現(xiàn)了小學(xué)教師,中學(xué)教師等等。

    不知道這個(gè)例子是否恰當(dāng)~~

    二、C#中的接口和類有什么異同?

    實(shí)在看不下去國(guó)內(nèi)那些裝X的大佬程序員了。別人一問(wèn)接口和類的區(qū)別聯(lián)系,竄上來(lái)就扯什么public,什么屬性索引,什么誰(shuí)能繼承誰(shuí),誰(shuí)不能繼承誰(shuí)的,咋地,我還要畫張地圖去造迷宮呀。

    看到我的回答,我覺(jué)得很多入門的程序員都能走出這個(gè)邊問(wèn)邊記邊理解,最后發(fā)現(xiàn)還是不知所云的怪圈。

    總體來(lái)說(shuō),有了類,才有了接口,有了接口才有了抽象類,不要懷疑這個(gè)順序,沒(méi)錯(cuò),和你在網(wǎng)上看到的都不一樣,很不理解吧。看完回答,你或許發(fā)現(xiàn),這樣理解反而好很多。

    首先是繼承,類是單一繼承的,這個(gè)應(yīng)該都有百度看到過(guò),但是這句話是個(gè)坑,單一繼承只是從子類的角度去說(shuō)的。因?yàn)橐粋€(gè)子類只能有一個(gè)父類,但是一個(gè)父類是可以有很多個(gè)子類的。

    言歸正傳,抽象類和類在繼承上是完全沒(méi)有區(qū)別的,不要被abstract關(guān)鍵字迷惑,這個(gè)東西只是對(duì)子成員進(jìn)行一個(gè)限制作用的。奧,補(bǔ)充一點(diǎn)就是抽象類不能被實(shí)例化(算是繼承層面唯一用到abstract的一點(diǎn)),這個(gè)可以作為本能認(rèn)知,你說(shuō)我都這么抽象了,你還去實(shí)現(xiàn)我,阿拉丁呀。

    接著是接口,接口的繼承關(guān)系就比較好理解了,一個(gè)類可以繼承多個(gè)接口,接口可以繼承多個(gè)接口,抽象類也可以繼承多個(gè)接口,所以,接口真的就是規(guī)范。

    問(wèn)題來(lái)了,為什么我認(rèn)為先有接口,后有抽象類呢?

    場(chǎng)景是這樣的,你想寫一大批類,但是發(fā)現(xiàn)這些類有很多公用屬性,比如id,創(chuàng)建時(shí)間,創(chuàng)建人等等,所以你想寫一個(gè)通用類,來(lái)把這些東西寫一遍就過(guò),所以有了基類。

    你想規(guī)范每個(gè)類的功能方法,所以有了接口,但是你發(fā)現(xiàn)只是規(guī)范,沒(méi)有實(shí)現(xiàn),這也就意味著你需要把所有接口方法都實(shí)現(xiàn)一遍,可是你發(fā)現(xiàn)很多方法和屬性一樣,也是重復(fù)的,比如獲取id,數(shù)據(jù)庫(kù)的增刪改查等等,所以你又想把這些方法統(tǒng)一的進(jìn)行實(shí)現(xiàn)。這個(gè)需求簡(jiǎn)單來(lái)說(shuō),就是又想約束,又想有部分實(shí)現(xiàn),這時(shí)候出現(xiàn)了抽象類。是的,約束作用的就是抽象類里的抽象方法,實(shí)現(xiàn)的就是抽象類里的真實(shí)方法。

    補(bǔ)充:虛方法和抽象方法。抽象方法只能在抽象類中,而且他的子類必須重寫抽象方法,誰(shuí)讓人家起到約束作用呢。虛方法可以在任何類中,除了密封類,因?yàn)檫@個(gè)東西不能被繼承。虛方法有方法體,抽象方法沒(méi)有的。虛方法可以被重寫,也可以不被重寫,但是抽象方法必須被實(shí)現(xiàn)的子類重寫,這個(gè)有點(diǎn)碰瓷的意思。子類你撞了我,你必須給我實(shí)現(xiàn)我的所有虛幻的愿望。

    最后就是這個(gè)虛方法,這個(gè)東西你重寫了,重寫后的方法比原始的優(yōu)先級(jí)就高,不重寫,就去調(diào)用原始的虛方法

    三、什么是類的接口?什么是類的實(shí)現(xiàn)?

    注意一下接口和抽象類的區(qū)別,你就知道什么是類的接口,簡(jiǎn)單而言,就是把一些類的共同行為抽象出來(lái)作為接口。類的實(shí)現(xiàn)則是針對(duì)接口或是抽象類具體實(shí)現(xiàn)、編碼等

    四、什么是接口?為什么要定義接口?接口與類有和異同

    我們把用于完成特定功能的若干屬性組織成相對(duì)獨(dú)立的屬性集合。這種屬性的集合就是接口。

    定義接口與定義類非常相似。實(shí)際上完全可以把接口理解成為一種特殊的類,接口是由常量和抽象方法組成的特殊類。一個(gè)類只能由一個(gè)父類,但是它可以同時(shí)實(shí)現(xiàn)若干個(gè)接口。這種情況下如果把接口理解成特殊的類,那么這個(gè)類利用接口實(shí)際上就獲得了多個(gè)父類,即實(shí)現(xiàn)了多重繼承。與類定義相仿,聲明接口時(shí)也需要給出訪問(wèn)控制符,不同的是接口的訪問(wèn)控制符只有public一個(gè)。用public修飾的接口是公共接口,可以被所有的類和接口使用,而沒(méi)有public修飾符的接口則只能被同一個(gè)包中的其他類和接口利用。接口也具有繼承性。定義一個(gè)接口是可以通過(guò)extends關(guān)鍵字聲明該新接口是某個(gè)已經(jīng)存在的父接口的派生接口,它將繼承父接口的所有屬性和方法。與類的繼承不同的是一個(gè)接口可以有一個(gè)以上的父接口,它們之間用逗號(hào)分隔,形成父接口列表。新接口將繼承所有父接口中的屬性和方法。

    以上就是關(guān)于類和接口的關(guān)系相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    雞尾酒品牌排行榜(洋酒的種類和名稱大全)

    類和接口的關(guān)系(類和接口的關(guān)系是什么)

    電子信息類和計(jì)算機(jī)類的區(qū)別(學(xué)計(jì)算機(jī)好還是學(xué)電子信息好)

    電視廣告語(yǔ)經(jīng)典100條(電視廣告語(yǔ)經(jīng)典100條圖片)

    好物分享短視頻素材(100個(gè)無(wú)水印短視頻素材免費(fèi))