日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Swift基础语法: 30 - Swift的基类, 子类, 重写, 重写方法, 重写属性, 防止重写

發布時間:2023/12/1 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Swift基础语法: 30 - Swift的基类, 子类, 重写, 重写方法, 重写属性, 防止重写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前面我們講了有關于腳本語法的基本認識以及使用, 現在讓我們來看看Swift的其他東西:


1.基類

所謂的基類, 就是OC中的父類, 不繼承任何類, 就叫做基類, 讓我們來看看例子:

class Vehicle {var currentSpeed = 0.0var description: String {return "traveling at \(currentSpeed) miles per hour"}func makeNoise() {} }let someVehicle = Vehicle() println("someVehicle: \(someVehicle.description)") // 打印出來的結果: someVehicle: traveling at 0.0 miles per hour

PS: 這個類雖然是沒有什么意義, 但它的的確確是一個基類, 在Swift中, 如果你沒有在這個類名后面繼承與什么什么類, 那么就會自動的變成基類.


2.子類生成

所謂的子類, 其實和OC中的子類一樣的, 它是基于基類所新建的一個類, 這個類就叫做子類, 它擁有父類的所有特性, 同時它又可以有屬于自己的特性, 下面讓我們來看看例子:

class Bicycle: Vehicle {var hasBasket = false }let bicycle = Bicycle() bicycle.hasBasket = true bicycle.currentSpeed = 15 println("bicycle: \(bicycle.description)") // 打印出來的結果: bicycle: traveling at 15.0 miles per hour

PS: 上面的例子就是Vehicle類的子類, 它繼承與Vehicle的所有特性, 可以調用Vehicle類里面的變量, 方法,等等, 同時它又有自己的屬性.


3.重寫方法

在子類中, 雖然擁有父類的所有特性, 但在實際開發中, 有一些特殊的情況, 父類的方法不能滿足于子類的需求, 但我們又不想去更改父類的方法, 那么我們可以選在在子類里去重寫父類的方法, 比如:

class Car: Vehicle {var gear = 1override var description: String {return super.description + " in gear \(gear)"} }let car = Car() car.currentSpeed = 25.0 car.gear = 3 println("Car: \(car.description)") // 打印出來的結果: Car: traveling at 25.0 miles per hour in gear 3

PS: 沒錯, 有些眼睛犀利的朋友就看到了, 在Car這個子類里, 有一個方法名和父類的方法名是一樣的, 但在這個方法名前面, 加了一個override這個關鍵字, 這個就是Swift中的重寫關鍵字.


4.重寫屬性

在Swift中, 既然能重寫父類的方法, 那當然也是可以重寫父類的屬性了, 讓我們來看看例子:

class SpeedLimitedCar: Car {override var gear: Int {get {return super.gear}set {super.gear = 2}} } let limitedCar = SpeedLimitedCar() limitedCar.gear = 60println("SpeedLimitedCar: \(limitedCar.gear)") // 打印出來的結果: SpeedLimitedCar: 2

PS: 這里需要注意一點的就是, 必須通過get和set這種特性的方式來重寫父類的屬性.


5.防止重寫

在上面的例子中, 如果我有某個類的屬性或者方法不想被重寫, 只要在基類定義的時候在前面加一個final關鍵字就可以防止被重寫, 下面讓我們來看看例子:

class Car: Vehicle {final var gear = 0final override var description: String {return super.description + " in gear \(gear)"} }class SpeedLimitedCar: Car {override var description: String {return "重寫了"}override var gear: Int {get {return super.gear}set {super.gear = 2}} } // 報錯: Var overrides a 'final' var


好了, 這次我們就講到這里, 下次我們繼續~

轉載于:https://www.cnblogs.com/iOSCain/p/4529358.html

總結

以上是生活随笔為你收集整理的Swift基础语法: 30 - Swift的基类, 子类, 重写, 重写方法, 重写属性, 防止重写的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品国产乱码久久久久久久 | 国产一区视频网站 | 日韩三级黄 | 亚洲精品免费在线观看视频 | 国产女主播一区 | 国产午夜精品福利视频 | 黄色一级片在线播放 | 日韩精品一区二区亚洲av观看 | 黄色大视频 | 日韩av无码久久 | 日本一区二区三区四区视频 | 午夜视频在线免费 | 潘金莲一级淫片aaaaa武则天 | 国产精品久久久久桃色tv | 黑森林av导航| 一区二区三区三区在线 | 奇米网狠狠干 | 极品销魂美女一区二区 | 日韩免费成人av | 亚洲综合另类小说 | 在线视频综合网 | 日本人の夫妇交换 | 国产v片| 男女无遮挡做爰猛烈视频 | 国产噜噜噜噜噜久久久久久久久 | 午夜寂寞少妇 | 成人在线国产视频 | 97精品人妻一区二区 | 亚洲国内精品 | 欧美撒尿777hd撒尿 | 涩婷婷| 古装做爰无遮挡三级聊斋艳谭 | 男生操女生动漫 | 亚州av| 成人毛片一区二区三区 | 风流少妇按摩来高潮 | 国产精品.xx视频.xxtv | 国产乱淫av| 久草资源在线视频 | 又色又爽又黄gif动态图 | 日韩精品视频久久 | 潘金莲一级淫片aaaaaa播放 | 国产盗摄视频在线观看 | 色婷视频 | xxxxxxxx黄色片 | 人人澡人人插 | 国产午夜精品一区二区三区 | 国产超碰在线 | 狂野欧美性猛交blacked | 懂色av一区二区三区免费观看 | 亚洲精品欧美在线 | 欧美在线观看视频一区二区 | 国产又粗又猛又爽又黄又 | 亚洲性猛交富婆 | 小说肉肉视频 | 老司机深夜福利在线观看 | 高h文在线 | 国产成人av一区二区三区 | 六月色 | jizzzxxxx| 日韩av免费在线看 | 亚洲系列第一页 | videos另类灌满极品另类 | 亚洲三级小视频 | 日夜夜操 | 中文字幕无码精品亚洲资源网久久 | 国产精品野外户外 | 久久露脸国语精品国产 | 亚洲精品国产熟女久久久 | 伦理一级片 | 国产精品污www在线观看 | 丰满人妻熟妇乱偷人无码 | 亚洲不卡在线视频 | 成人亚洲玉足脚交系列 | 日本人体一区 | 7799精品视频天天看 | 毛片基地在线播放 | 无码视频在线观看 | 日韩精品高清在线观看 | 国产曰肥老太婆无遮挡 | 国内自拍偷拍视频 | 成人午夜又粗又硬又大 | 日韩一区二区高清视频 | 青青草国产精品视频 | 久久婷婷视频 | 日本色视 | 999色综合 | 好看的av在线 | 青娱网电信一区电信二区电信三区 | 7777久久亚洲中文字幕 | 国产成人aaaa | 亚洲国产美女视频 | 精品一区二区视频在线观看 | 韩国不卡av | 成av人片一区二区三区久久 | 欧美日韩色图 | 欧美成人播放 | 阿v视频在线免费观看 | 欧洲黄色网 |