欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift中重寫和重載的使用與對比總結(jié)

 更新時間:2017年10月26日 10:53:51   作者:Mazy_ma  
這篇文章主要給大家介紹了關(guān)于Swift中重寫和重載的使用方法,以及重寫和重載的對比分析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

最近在學(xué)習(xí)swift,感覺Swift是一門大雜燴類型的語言,我會記錄一些我自認(rèn)為以前遇到較少或者需要重點(diǎn)記憶的語法特性,在此作為分享,本文詳細(xì)介紹了關(guān)于Swift重寫和重載的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。

1、重載:

  • 函數(shù)名相同,參數(shù)名/參數(shù)類型/參數(shù)個數(shù)不同
  • 重載函數(shù)并不僅僅局限于構(gòu)造函數(shù)
  • 函數(shù)重載是面相對象程序設(shè)計語言的重要標(biāo)志
  • OC 不支持函數(shù)重載,OC 的替代方式是 withXXX…

2、重寫:

  • 也叫覆蓋,指在子類中定義一個與父類中方法同名同參數(shù)列表的方法。
  • 重寫是子類的方法覆蓋父類的方法,要求方法名和參數(shù)都相同
  • 因為子類會繼承父類的方法,而重寫就是將從父類繼承過來的方法重新定義一次,重新填寫方法中的代碼。
  • 重寫必須繼承,重載不用

假設(shè)有一個Person類,用于 “name” 和 “age” 兩個屬性,我們分別用重寫和重載方法為其添加屬性

創(chuàng)建Person類

class Person: NSObject {

 var name: String // 姓名
 var age: Int  // 年齡

 // 構(gòu)造函數(shù)
 init(name: String,age: Int) {
  self.name = name
  self.age = age
  // 必須在 super.init() 之前 初始化對象
  super.init()
 }
}

通過重寫方法為其添加 “l(fā)esson” 屬性

class Student: Person {

 var lesson: String

 /// 重寫
 ///
 /// - Parameters:
 /// - name: 姓名
 /// - age: 年齡
 override init(name: String, age: Int) {

  lesson = "Python" // 必須放在super.init()之前

  super.init(name: name, age: age)

 }
}
 /// 重寫實例化的對象
 let s = Student(name: "Joyce", age: 18)
 print(s.lesson) // Python

通過重載方法為其添加 “l(fā)esson” 屬性

class Student: Person {

 var lesson: String

 /// 重載
 ///
 /// - Parameters:
 /// - name: 姓名
 /// - age: 年齡
 /// - lesson: 課程
 init(name: String, age: Int, lesson:String) {

  self.lesson = lesson

  super.init(name: name, age: age)
 }

}
 /// 重載實例化的對象
 let s1 = Student(name: "帥哥", age: 21, lesson: "HTML 5")
 print(s1.lesson) // HTML 5 

總結(jié):

通過重載,可以快速為方法添加新的屬性,屬性可以通過外部傳入

重寫,只能在方法內(nèi)部設(shè)置屬性,外部無法直觀看到類的參數(shù)列表

好了,以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • Swift 3中使用FMDB遇到的問題與解決方法

    Swift 3中使用FMDB遇到的問題與解決方法

    相信大家都熟悉OC使用FMDB第三方庫,進(jìn)行數(shù)據(jù)庫操作,增、刪、改、查,但最近在Swift 3中使用FMDB遇到了一些問題,下面這篇文章主要給大家介紹了關(guān)于在Swift 3中使用FMDB遇到的問題與解決方法,需要的朋友可以參考下。
    2017-07-07
  • Swift使用enum抹平數(shù)組元素差異實例詳解

    Swift使用enum抹平數(shù)組元素差異實例詳解

    這篇文章主要為大家介紹了Swift使用enum抹平數(shù)組元素差異實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Swift使用CollectionView實現(xiàn)廣告欄滑動效果

    Swift使用CollectionView實現(xiàn)廣告欄滑動效果

    這篇文章主要為大家詳細(xì)介紹了Swift使用CollectionView實現(xiàn)廣告欄滑動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Swift 如何讓ScrollView滾動到具體某個位置

    Swift 如何讓ScrollView滾動到具體某個位置

    這篇文章主要介紹了Swift 如何讓ScrollView滾動到具體某個位置,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Swift如何為網(wǎng)頁承載頁面添加更多功能詳解

    Swift如何為網(wǎng)頁承載頁面添加更多功能詳解

    這篇文章主要給大家介紹了關(guān)于Swift如何為網(wǎng)頁承載頁面添加更多功能的相關(guān)資料,包括添加菊花加載的效果、添加跳轉(zhuǎn)到Safari的功能、添加復(fù)制鏈接的功能以及添加分享網(wǎng)頁的功能,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Swift初始化器與可選鏈的使用方法介紹

    Swift初始化器與可選鏈的使用方法介紹

    初始化器初始化是準(zhǔn)備類、結(jié)構(gòu)或枚舉的實例以供使用的過程。此過程涉及為該實例上的每個存儲屬性設(shè)置初始值,并執(zhí)行在新實例準(zhǔn)備就緒可供使用之前所需的任何其他設(shè)置或初始化,可選鏈?zhǔn)且环N可以請求和調(diào)用屬性、方法和子腳本的過程,用于請求或調(diào)用的目標(biāo)可能為nil
    2022-08-08
  • Swift?reduce函數(shù)使用示例詳解

    Swift?reduce函數(shù)使用示例詳解

    這篇文章主要為大家介紹了Swift?reduce函數(shù)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Swift?Error的處理方法說明

    Swift?Error的處理方法說明

    wift?是一個類型嚴(yán)格的語言,在很多情況下各種不匹配或者強(qiáng)制解包出錯都會導(dǎo)致系統(tǒng)崩潰。所以我們需要進(jìn)行異常處理,在swift中也叫錯誤處理Error
    2022-08-08
  • 深入理解Swift語言中的閉包機(jī)制

    深入理解Swift語言中的閉包機(jī)制

    這篇文章主要介紹了Swift語言中的閉包機(jī)制,是Swift入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • swift中defer的實際應(yīng)用小結(jié)

    swift中defer的實際應(yīng)用小結(jié)

    這篇文章主要給大家介紹了關(guān)于swift中defer的實際應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評論