-
當前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
類和接口的關(guān)系(類和接口的關(guān)系是什么)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于類和接口的關(guān)系的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com
本文目錄:
一、Java實現(xiàn)類和接口的關(guān)系
你可以把接口看成是一種職業(yè),比如說教師。
你把實現(xiàn)類看成是小學(xué)教師,或是中學(xué)教師。
無論是小學(xué)教師還是中學(xué)教師,他們都是教師,都‘繼承’了教師。
你對外封裝時用接口,就好比是讓你選擇行業(yè),你只能選擇教師,而一般不會在諸多行業(yè)中還列舉出小學(xué),中學(xué)等等。
而實現(xiàn)類也表現(xiàn)出了多態(tài)性,因為原本的只有教師這一個職業(yè),然后因為教授學(xué)生的不同,就出現(xiàn)了小學(xué)教師,中學(xué)教師等等。
不知道這個例子是否恰當~~
二、C#中的接口和類有什么異同?
實在看不下去國內(nèi)那些裝X的大佬程序員了。別人一問接口和類的區(qū)別聯(lián)系,竄上來就扯什么public,什么屬性索引,什么誰能繼承誰,誰不能繼承誰的,咋地,我還要畫張地圖去造迷宮呀。
看到我的回答,我覺得很多入門的程序員都能走出這個邊問邊記邊理解,最后發(fā)現(xiàn)還是不知所云的怪圈。
總體來說,有了類,才有了接口,有了接口才有了抽象類,不要懷疑這個順序,沒錯,和你在網(wǎng)上看到的都不一樣,很不理解吧??赐昊卮?,你或許發(fā)現(xiàn),這樣理解反而好很多。
首先是繼承,類是單一繼承的,這個應(yīng)該都有百度看到過,但是這句話是個坑,單一繼承只是從子類的角度去說的。因為一個子類只能有一個父類,但是一個父類是可以有很多個子類的。
言歸正傳,抽象類和類在繼承上是完全沒有區(qū)別的,不要被abstract關(guān)鍵字迷惑,這個東西只是對子成員進行一個限制作用的。奧,補充一點就是抽象類不能被實例化(算是繼承層面唯一用到abstract的一點),這個可以作為本能認知,你說我都這么抽象了,你還去實現(xiàn)我,阿拉丁呀。
接著是接口,接口的繼承關(guān)系就比較好理解了,一個類可以繼承多個接口,接口可以繼承多個接口,抽象類也可以繼承多個接口,所以,接口真的就是規(guī)范。
問題來了,為什么我認為先有接口,后有抽象類呢?
場景是這樣的,你想寫一大批類,但是發(fā)現(xiàn)這些類有很多公用屬性,比如id,創(chuàng)建時間,創(chuàng)建人等等,所以你想寫一個通用類,來把這些東西寫一遍就過,所以有了基類。
你想規(guī)范每個類的功能方法,所以有了接口,但是你發(fā)現(xiàn)只是規(guī)范,沒有實現(xiàn),這也就意味著你需要把所有接口方法都實現(xiàn)一遍,可是你發(fā)現(xiàn)很多方法和屬性一樣,也是重復(fù)的,比如獲取id,數(shù)據(jù)庫的增刪改查等等,所以你又想把這些方法統(tǒng)一的進行實現(xiàn)。這個需求簡單來說,就是又想約束,又想有部分實現(xiàn),這時候出現(xiàn)了抽象類。是的,約束作用的就是抽象類里的抽象方法,實現(xiàn)的就是抽象類里的真實方法。
補充:虛方法和抽象方法。抽象方法只能在抽象類中,而且他的子類必須重寫抽象方法,誰讓人家起到約束作用呢。虛方法可以在任何類中,除了密封類,因為這個東西不能被繼承。虛方法有方法體,抽象方法沒有的。虛方法可以被重寫,也可以不被重寫,但是抽象方法必須被實現(xiàn)的子類重寫,這個有點碰瓷的意思。子類你撞了我,你必須給我實現(xiàn)我的所有虛幻的愿望。
最后就是這個虛方法,這個東西你重寫了,重寫后的方法比原始的優(yōu)先級就高,不重寫,就去調(diào)用原始的虛方法
三、什么是類的接口?什么是類的實現(xiàn)?
注意一下接口和抽象類的區(qū)別,你就知道什么是類的接口,簡單而言,就是把一些類的共同行為抽象出來作為接口。類的實現(xiàn)則是針對接口或是抽象類具體實現(xiàn)、編碼等
四、什么是接口?為什么要定義接口?接口與類有和異同
我們把用于完成特定功能的若干屬性組織成相對獨立的屬性集合。這種屬性的集合就是接口。
定義接口與定義類非常相似。實際上完全可以把接口理解成為一種特殊的類,接口是由常量和抽象方法組成的特殊類。一個類只能由一個父類,但是它可以同時實現(xiàn)若干個接口。這種情況下如果把接口理解成特殊的類,那么這個類利用接口實際上就獲得了多個父類,即實現(xiàn)了多重繼承。與類定義相仿,聲明接口時也需要給出訪問控制符,不同的是接口的訪問控制符只有public一個。用public修飾的接口是公共接口,可以被所有的類和接口使用,而沒有public修飾符的接口則只能被同一個包中的其他類和接口利用。接口也具有繼承性。定義一個接口是可以通過extends關(guān)鍵字聲明該新接口是某個已經(jīng)存在的父接口的派生接口,它將繼承父接口的所有屬性和方法。與類的繼承不同的是一個接口可以有一個以上的父接口,它們之間用逗號分隔,形成父接口列表。新接口將繼承所有父接口中的屬性和方法。
以上就是關(guān)于類和接口的關(guān)系相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
類和接口的關(guān)系(類和接口的關(guān)系是什么)
電子信息類和計算機類的區(qū)別(學(xué)計算機好還是學(xué)電子信息好)
電視廣告語經(jīng)典100條(電視廣告語經(jīng)典100條圖片)