国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Swift > 正文

Swift中重寫和重載的使用與對比總結

2020-03-09 17:43:50
字體:
來源:轉載
供稿:網友

前言

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

1、重載:

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

2、重寫:

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

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

創建Person類

class Person: NSObject { var name: String // 姓名 var age: Int  // 年齡 // 構造函數 init(name: String,age: Int) {  self.name = name  self.age = age  // 必須在 super.init() 之前 初始化對象  super.init() }}

通過重寫方法為其添加 “lesson” 屬性

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

通過重載方法為其添加 “lesson” 屬性

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 

總結:

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

重寫,只能在方法內部設置屬性,外部無法直觀看到類的參數列表

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到swift教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 错那县| 泉州市| 罗甸县| 香港| 涞水县| 娱乐| 北票市| 安西县| 镇赉县| 甘洛县| 微山县| 惠东县| 盱眙县| 灵璧县| 宁德市| 枞阳县| 宁晋县| 呼伦贝尔市| 肥城市| 孝昌县| 吉隆县| 城口县| 邹城市| 原平市| 息烽县| 靖宇县| 大宁县| 阜南县| 深圳市| 五寨县| 长垣县| 喀什市| 长兴县| 上蔡县| 油尖旺区| 兴隆县| 津市市| 海原县| 十堰市| 曲阜市| 郸城县|