05-self、super、封裝、繼承、多態(tài)

self、super、封裝、繼承、多態(tài)


self


self用于調(diào)用本類中的方法

  • 前提: self不能離開類, 離開類之后沒有任何意義

  • 含義:

    • 如果self在對象方法中, 那么self就代表調(diào)用當(dāng)前對象方法的那個(gè)對象
    • 如果self在類方法中, 那么self就代表調(diào)用當(dāng)前類方法的那個(gè)類
  • 總結(jié): 只用關(guān)注self在哪一個(gè)方法中 , 如果在類方法那么就代表當(dāng)前類, 如果在對象方法那么就代表"當(dāng)前調(diào)用該方法的對象"

  • 注意:

    • self會(huì)自動(dòng)區(qū)分類方法和對象方法, 如果在類方法中使用self調(diào)用對象方法, 那么會(huì)直接報(bào)錯(cuò)
    • 不能在對象方法或者類方法中利用self調(diào)用當(dāng)前self所在的方法(會(huì)發(fā)生死循環(huán))
  • 使用場景:

    • 可以用于在對象方法之間進(jìn)行相互調(diào)用
    • 可以用于在類方法之間進(jìn)行相互調(diào)用
    • 可以用于區(qū)分成員變量和局部變量同名的情況

super


super用于調(diào)用父類中的方法

  • 使用方法: 只需要利用super給父類的方法發(fā)送一個(gè)消息, 那么系統(tǒng)就會(huì)自動(dòng)調(diào)用父類的方法

  • 使用場景:

    • 如果以后想在子類中調(diào)用父類的方法可以使用super
    • 如果想在給父類方法進(jìn)行擴(kuò)展的同時(shí)保留父類的方法, 那么可以使用super調(diào)用父類同名的方法
  • 其他:

    • super在類方法中, 一定會(huì)調(diào)用父類的類方法
    • super在對象方法中, 一定會(huì)調(diào)用父類的對象方法
    • 可以利用super在任意方法中調(diào)用父類中的方法

封裝


  • 封裝: 屏蔽內(nèi)部實(shí)現(xiàn)的細(xì)節(jié), 僅僅對外提供共有的方法/接口(如setter, getter方法)

  • 好處: 保證數(shù)據(jù)的安全性, 將變化隔離

  • 規(guī)范: 一般情況下不會(huì)對外直接暴露成員變量, 都會(huì)提供一些共有的方法進(jìn)行賦值
    成員變量都需要封裝起來

繼承


  • 繼承: 當(dāng)B類繼承A類, 那么B類就擁有A類所有的屬性和方法(類方法/對象方法)

  • 優(yōu)點(diǎn):

    • 提高代碼的復(fù)用性
    • 可以讓類與類之間產(chǎn)生關(guān)系, 正是因?yàn)槔^承讓類與類之間產(chǎn)生了關(guān)系所以才有了多態(tài)
  • 注意: 不要因?yàn)槔^承可以提高代碼的復(fù)用性,就把含有重復(fù)代碼的多個(gè)類抽取一個(gè)父類,
    只要滿足一定的條件我們才能使用繼承.

  • 條件: XXXX XXX / 某某某 is a 某某某

  • 缺點(diǎn): 耦合性太強(qiáng)(依賴性太強(qiáng), 若刪掉父類就會(huì)影響子類)

多態(tài)


  • 多態(tài): 事物的多種表現(xiàn)形態(tài)

  • 在程序中如何表現(xiàn): 父類指針指向子類對象

  • 優(yōu)點(diǎn): 提高了代碼的擴(kuò)展性

  • 注意點(diǎn): 如果父類指針指向子類對象, 如果需要調(diào)用子類特有的方法, 必須先強(qiáng)制類型轉(zhuǎn)換為子類才能調(diào)用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.面向?qū)ο笕筇匦?-封裝性 -繼承性 -多態(tài)性 2.什么是封裝 封裝性就是隱藏實(shí)現(xiàn)細(xì)節(jié),僅對外公開接口。 3....
    夢夜繁星閱讀 1,175評論 0 6
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,082評論 0 9
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,819評論 18 399
  • 自從2014年接觸思維導(dǎo)圖后,就一直愛不釋手,用它來寫讀書筆記、做計(jì)劃、參加課程后寫總結(jié)。但這些都是用軟件操作的。...
    西西的天空閱讀 931評論 1 2
  • 說好的早睡的,從十一點(diǎn)放下手機(jī),到現(xiàn)在還是睡不著。反正也睡不著,就寫點(diǎn)什么吧。 這周又參加了大頭成長營,每天讀書了...
    安曉慈閱讀 328評論 0 3

友情鏈接更多精彩內(nèi)容