日韩性视频-久久久蜜桃-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的基类, 子类, 重写, 重写方法, 重写属性, 防止重写的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产欧美综合视频 | 日本中文字幕视频在线 | 成人网页 | 国产午夜在线一区二区三区 | 天天摸天天操天天射 | 日韩五码在线 | 欧美男女交配视频 | 欧美日韩国产高清视频 | 电家庭影院午夜 | a级大片在线观看 | 亚洲天堂欧美 | 黑森林福利视频导航 | 黑人乱码一区二区三区av | 四虎视频在线观看 | 欧美群交射精内射颜射潮喷 | av在线播放不卡 | 99re6在线视频| 久操视频免费在线观看 | 超碰蜜臀| 国产精品av久久久久久无 | 熟女毛片| 久久精品亚洲精品国产欧美 | 成人依依网| 欧美福利精品 | 亚洲不卡一区二区三区 | 好男人香蕉影院 | 国产第三区 | 免费av的网站 | 四虎看黄 | 亚洲视频在线免费观看 | 亚洲精品国产精品乱码不99 | 在哪看毛片 | 一区二区三区四区在线 | 久久无码高潮喷水 | 色图一区 | 欧美日韩观看 | 五月婷婷在线播放 | 国产在线观看h | 91网在线 | 精品熟女一区二区 | 亚洲国产v | 久久成人一区二区 | 禁欲天堂 | 日韩精品电影一区 | 青青青手机视频在线观看 | 久久久男人天堂 | 少妇无码一区二区三区 | av在线观看地址 | 国产高潮视频 | 超鹏在线视频 | 亚洲欧美一级 | 91在线超碰 | 在线看中文字幕 | 日本中文字幕在线看 | 国产精品久久九九 | h片在线播放| 在线a天堂 | 在线观看超碰 | 日韩中文一区二区三区 | 97潮色 | 成人激情视频 | 99色国产| 高h1v| 女仆乖h调教跪趴1v1 | 人妻激情偷乱频一区二区三区 | 欧美精品一级二级三级 | 日本在线精品 | a在线视频 | 久操视频在线播放 | 色一区二区三区四区 | 亚洲在线看| 少妇性l交大片7724com | 中文字幕久久综合 | 超碰在线公开 | 2019中文字幕在线 | 日韩欧美区| 羞羞在线观看 | 日本特黄 | 国产在线不卡一区 | 亚洲性生活视频 | 人妻一区二区视频 | 久热久色| 亚洲一区图片 | 自拍毛片 | 日韩视频免费在线观看 | 亚洲欧美激情在线观看 | 日韩毛片在线观看 | 免费精品在线 | 日韩性生交大片免费看 | 久久久精品在线 | 欧美人妻精品一区二区三区 | 成人a毛片久久免费播放 | 成人免费看片入口 | 日韩男女啪啪 | 无人在线观看的免费高清视频 | 特级西西www444人体聚色 | 欧美性受xxxx黑人xyx性 | 精品视频999| 96久久久 |