python接口和抽象类的区别_接口和抽象类有什么区别?
最近團(tuán)隊(duì)在招人:阿里新零售事業(yè)群CBU技術(shù)部招Java高級(jí)&專(zhuān)家,團(tuán)隊(duì)主要負(fù)責(zé)B2B工業(yè)品牌業(yè)務(wù),坐標(biāo)杭州濱江,有興趣的小伙伴私戳我。
********************************************
以下是原文:
本身的設(shè)計(jì)目的就是不同的。
大家講的都很詳細(xì)了,我說(shuō)說(shuō)我自己的一點(diǎn)淺薄的理解。
我一直認(rèn)為,工科的知識(shí)有個(gè)很明顯的特點(diǎn):“以用為本”。在討論接口和抽象類(lèi)的區(qū)別時(shí),我也想從“用”的角度試著總結(jié)一下區(qū)別,所以我想到了設(shè)計(jì)目的。
接口的設(shè)計(jì)目的,是對(duì)類(lèi)的行為進(jìn)行約束(更準(zhǔn)確的說(shuō)是一種“有”約束,因?yàn)榻涌诓荒芤?guī)定類(lèi)不可以有什么行為),也就是提供一種機(jī)制,可以強(qiáng)制要求不同的類(lèi)具有相同的行為。它只約束了行為的有無(wú),但不對(duì)如何實(shí)現(xiàn)行為進(jìn)行限制。對(duì)“接口為何是約束”的理解,我覺(jué)得配合泛型食用效果更佳。
而抽象類(lèi)的設(shè)計(jì)目的,是代碼復(fù)用。當(dāng)不同的類(lèi)具有某些相同的行為(記為行為集合A),且其中一部分行為的實(shí)現(xiàn)方式一致時(shí)(A的非真子集,記為B),可以讓這些類(lèi)都派生于一個(gè)抽象類(lèi)。在這個(gè)抽象類(lèi)中實(shí)現(xiàn)了B,避免讓所有的子類(lèi)來(lái)實(shí)現(xiàn)B,這就達(dá)到了代碼復(fù)用的目的。而A減B的部分,留給各個(gè)子類(lèi)自己實(shí)現(xiàn)。正是因?yàn)锳-B在這里沒(méi)有實(shí)現(xiàn),所以抽象類(lèi)不允許實(shí)例化出來(lái)(否則當(dāng)調(diào)用到A-B時(shí),無(wú)法執(zhí)行)。
第一次回答這類(lèi)問(wèn)題,有錯(cuò)誤之處望大家海涵并不吝指正
總結(jié)
以上是生活随笔為你收集整理的python接口和抽象类的区别_接口和抽象类有什么区别?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 造梦西游3混沌在哪里
- 下一篇: 成都大熊猫基地网上订票几点可以进