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

    類和接口的區(qū)別(java類和接口的區(qū)別)

    發(fā)布時間:2023-03-12 10:09:29     稿源: 創(chuàng)意嶺    閱讀: 104        問大家

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于類和接口的區(qū)別的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    ChatGPT國內(nèi)免費在線使用,能給你生成想要的原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    你只需要給出你的關(guān)鍵詞,它就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端,官網(wǎng):https://ai.de1919.com

    本文目錄:

    類和接口的區(qū)別(java類和接口的區(qū)別)

    一、c#接口與類的區(qū)別!

    接口與類不同點:

    1. 不能直接實例化接口,

    2. 接口不包含方法的實現(xiàn),

    3. 接口、類和結(jié)構(gòu)可以從多個接口繼承,

    4. 但是C#只支持但繼承:類只能從一個基類繼承實現(xiàn)。

    接口與類相同點:

    1. 接口、類和結(jié)構(gòu)可以從多個接口繼承,

    2. 接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員,

    3. 接口可以包含事件、索引器、方法和屬性,

    4. 一個類可以實現(xiàn)多個接口。

    二、抽象類和接口的區(qū)別是什么?

    抽象類和接口的主要區(qū)別是,定義不同、方法不同、成員變量不同,具體如下:

    一、定義不同

    1、抽象類

    抽象類表示該類中可能已經(jīng)有一些方法的具體定義。

    2、接口

    接口僅僅只能定義各個方法的界面(方法名,參數(shù)列表,返回類型),并不關(guān)心具體細節(jié)。

    二、方法不同

    1、抽象類

    抽象類當中可以存在非抽象的方法。

    2、接口

    接口里面的方法只是一個聲明必須用public來修飾沒有具體實現(xiàn)的方法。

    三、成員變量不同

    1、抽象類

    抽象類中的成員變量可以被不同的修飾符來修飾。

    2、接口

    接口中的成員變量默認的都是靜態(tài)常量。

    以上內(nèi)容參考 百度百科-抽象類

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

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

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

    總體來說,有了類,才有了接口,有了接口才有了抽象類,不要懷疑這個順序,沒錯,和你在網(wǎng)上看到的都不一樣,很不理解吧??赐昊卮?,你或許發(fā)現(xiàn),這樣理解反而好很多。

    首先是繼承,類是單一繼承的,這個應該都有百度看到過,但是這句話是個坑,單一繼承只是從子類的角度去說的。因為一個子類只能有一個父類,但是一個父類是可以有很多個子類的。

    言歸正傳,抽象類和類在繼承上是完全沒有區(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)很多方法和屬性一樣,也是重復的,比如獲取id,數(shù)據(jù)庫的增刪改查等等,所以你又想把這些方法統(tǒng)一的進行實現(xiàn)。這個需求簡單來說,就是又想約束,又想有部分實現(xiàn),這時候出現(xiàn)了抽象類。是的,約束作用的就是抽象類里的抽象方法,實現(xiàn)的就是抽象類里的真實方法。

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

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

    四、抽象類和接口的區(qū)別

    抽象類和接口的區(qū)別如下:

    1、普通方法提供方法體

    接口里只能包含抽象方法,靜態(tài)方法和默認方法,不能為普通方法提供方法實現(xiàn),抽象類則完全可以包含普通方法,接口中的普通方法默認為抽象方法。

    2、publicstaticfinal賦值

    抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是publicstaticfinal類型的,并且必須賦值,否則通不過編譯。

    3、構(gòu)造器

    接口不能包含構(gòu)造器,抽象類可以包含構(gòu)造器,抽象類里的構(gòu)造器并不是用于創(chuàng)建對象,而是讓其子類調(diào)用這些構(gòu)造器來完成屬于抽象類的初始化操作。

    4、初始化塊

    接口里不能包含初始化塊,但抽象類里完全可以包含初始化塊。

    5、繼承一個抽象類、多個接口

    一個類只能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口。

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


    推薦閱讀:

    微營銷推廣的種類和方法有哪些

    類和接口的區(qū)別(java類和接口的區(qū)別)

    直播形式有哪些種(直播形式有哪些種類和類型)

    眺望山野的平臺景觀設(shè)計(眺望山間景色)

    一個公司的營銷策略(一個公司的營銷策略有哪些)