前言
最近在學(xué)習(xí)swift,感覺Swift是一門大雜燴類型的語(yǔ)言,我會(huì)記錄一些我自認(rèn)為以前遇到較少或者需要重點(diǎn)記憶的語(yǔ)法特性,在此作為分享,本文詳細(xì)介紹了關(guān)于Swift重寫和重載的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細(xì)的介紹吧。
1、重載:
2、重寫:
假設(shè)有一個(gè)Person類,用于 “name” 和 “age” 兩個(gè)屬性,我們分別用重寫和重載方法為其添加屬性
創(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() 之前 初始化對(duì)象 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) }}/// 重寫實(shí)例化的對(duì)象 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) }}/// 重載實(shí)例化的對(duì)象 let s1 = Student(name: "帥哥", age: 21, lesson: "HTML 5") print(s1.lesson) // HTML 5
總結(jié):
通過重載,可以快速為方法添加新的屬性,屬性可以通過外部傳入
重寫,只能在方法內(nèi)部設(shè)置屬性,外部無(wú)法直觀看到類的參數(shù)列表
好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選