Swift Day09 方法、繼承、屬性

1. 方法有哪兩種?都可以定義在枚舉、結(jié)構(gòu)體、類中嗎?
  • 實(shí)例方法(Instance Method):通過實(shí)例調(diào)用
  • 類型方法(Type Method):通過類型調(diào)用,用 static 或者 class 關(guān)鍵字定義
2. self 在實(shí)例方法和類型方法中代表什么?
  • 在實(shí)例方法中代表實(shí)例
  • 在類型方法中代表類型
3. 說一下 mutating 關(guān)鍵字的作用?
  • 結(jié)構(gòu)體和枚舉是值類型,默認(rèn)情況下,值類型的屬性不能被自身的實(shí)例方法修改
  • func 關(guān)鍵字前加 mutating可以運(yùn)行這種修改行為
mutating
4. 如何給任意類型(枚舉、結(jié)構(gòu)體、類),添加下標(biāo)功能?
  • 使用 subscript 可以給任意類型(枚舉、結(jié)構(gòu)體、類)增加下標(biāo)功能,有些地方也翻譯為:下標(biāo)腳本
  • subscript 的語法類似于實(shí)例方法、計(jì)算屬性
  • subscript 的本質(zhì)就是方法(函數(shù))
5. swift 中類型支持繼承?哪些不支持繼承?
  • 枚舉和結(jié)構(gòu)體不支持繼承,只有支持繼承
6. 什么是基類? Swift 中的基類OC中的基類一樣嗎?
  • 沒有父類的類,稱為:基類
  • Swift 并沒有像 OC、Java 那樣的規(guī)定:任何類最終都要繼承自某個(gè)基類
7. 子類可以重寫父類的什么?重寫必須要用什么關(guān)鍵字?
  • 一般情況下,子類可以重寫父類的下標(biāo)、方法、屬性
  • 重寫必須加上 override 關(guān)鍵字
  • 使用 override 關(guān)鍵字其實(shí)是 Swift 很好的特點(diǎn),這樣一看就知道這個(gè)方法是重寫了父類的,非常明確
8. 類型方法可以重寫嗎?(分兩種情況)
  • class 修飾的類型方法、下標(biāo),允許被子類重寫
  • static 修飾的類型方法、下標(biāo),不允許被子類重寫
9. 重寫屬性的時(shí)候,有哪些注意點(diǎn)?(至少說三點(diǎn))
重寫屬性
10. 子類可以為父類的存儲(chǔ)屬性和計(jì)算屬性添加屬性觀察器嗎?
  • 一般情況下,可以添加屬性觀察器
  • 特殊情況:只讀屬性和 let 屬性,不能添加屬性觀察器
11. 如果不希望屬性被重寫、或者類被繼承,你要怎么做?
  • final 修飾的方法、下標(biāo)、屬性,禁止被重寫
  • final 修飾的類,禁止被繼承
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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