課程
/后端開發(fā)
/Python
/python必學(xué)模塊-collections
python的抽象基類和java的abstact class和interface的區(qū)別是什么
2018-09-12
源自:python必學(xué)模塊-collections 1-1
正在回答
java的繼承模式是只能繼承一個(gè)類,但是可以繼承多個(gè)接口。這個(gè)是為了代碼重用和設(shè)計(jì)便于理解。
python的抽象基類在很多程度上并不是為了解決這個(gè)問題,python的抽象基類最重要的是為了實(shí)現(xiàn)類別的判斷以及強(qiáng)制實(shí)現(xiàn)某些方法,從概念上來講聽起來好像差不多,但實(shí)際上你對(duì)python的抽象基類了解以后,也會(huì)發(fā)現(xiàn)在python中判斷某個(gè)類型的類別實(shí)際上還是去判斷某個(gè)類是否有某個(gè)具體的方法,所以本質(zhì)上python是基于協(xié)議的一種語言,也就是方法名稱更重要, 抽象基類只不過是是的判斷某個(gè)類具有哪些方法名用起來更方便而已。所以你可以發(fā)現(xiàn)你如果某個(gè)類中實(shí)現(xiàn)了某個(gè)方法, 如果這個(gè)方法正好和某個(gè)抽象類的方法名一致,你即使不繼承這個(gè)抽象基類你也會(huì)判斷到你當(dāng)前的類是基類的實(shí)例,所以抽象基類并不是很重要,方法名是最重要的
但是java的類型則是嚴(yán)格的繼承關(guān)系,最多是可以動(dòng)態(tài)的將某個(gè)子類賦給父類而已
舉報(bào)
快速理解python中基于基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)的高級(jí)數(shù)據(jù)結(jié)構(gòu),讓代碼更精簡(jiǎn)且高效。
1 回答python有一定基礎(chǔ),想進(jìn)階該看什么書,或者學(xué)習(xí)什么
1 回答求大神賜教
1 回答xadmin對(duì)象級(jí)權(quán)限實(shí)現(xiàn)報(bào)錯(cuò)?
1 回答源碼在哪里下載?老師github是?
2 回答如果提問太多,會(huì)直接頂下去嗎?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-09-14
java的繼承模式是只能繼承一個(gè)類,但是可以繼承多個(gè)接口。這個(gè)是為了代碼重用和設(shè)計(jì)便于理解。
python的抽象基類在很多程度上并不是為了解決這個(gè)問題,python的抽象基類最重要的是為了實(shí)現(xiàn)類別的判斷以及強(qiáng)制實(shí)現(xiàn)某些方法,從概念上來講聽起來好像差不多,但實(shí)際上你對(duì)python的抽象基類了解以后,也會(huì)發(fā)現(xiàn)在python中判斷某個(gè)類型的類別實(shí)際上還是去判斷某個(gè)類是否有某個(gè)具體的方法,所以本質(zhì)上python是基于協(xié)議的一種語言,也就是方法名稱更重要, 抽象基類只不過是是的判斷某個(gè)類具有哪些方法名用起來更方便而已。所以你可以發(fā)現(xiàn)你如果某個(gè)類中實(shí)現(xiàn)了某個(gè)方法, 如果這個(gè)方法正好和某個(gè)抽象類的方法名一致,你即使不繼承這個(gè)抽象基類你也會(huì)判斷到你當(dāng)前的類是基類的實(shí)例,所以抽象基類并不是很重要,方法名是最重要的
但是java的類型則是嚴(yán)格的繼承關(guān)系,最多是可以動(dòng)態(tài)的將某個(gè)子類賦給父類而已