swift学习日记(七)下标 继承
来源:互联网 发布:格里芬体侧数据 编辑:程序博客网 时间:2024/05/19 16:22
一,下标
下标这个也是可以跟c++平滑过渡的特性,使用方法几乎一样
1,读写
swift的下标操作是有读写和只读两种属性的,比如String的下标操作就是只读,不允许你修改
这里我们主要讨论的是怎么为自定义的类添加下标操作,与c++需要重载运算符不同,swift的定义更加简单
var str:Array = [1, 2, 3]class family { init(s: String, d:String, m:String) { son = s dad = d mom = m } func set(s s:String, d:String, m:String) { son = s dad = d mom = m } subscript(index:String) -> String { get { if index == "son" { return son; } if index == "dad" { return dad } if index == "mom" { return mom } return "Default" } } var son = "Default" var dad = "Default" var mom = "Default"}var Dumphy = family(s: "Luke", d: "Phil", m: "Clair")print(Dumphy["mom"])跟普通的方法定义差不多
注意,这里我只用了一个get,你既可以都不用,也可以只用get或者set其中一个,也可以都用,分别代表了该类的下标读写权限,两个都不用好像是只读,我没试,各位自己试,这里只有get即为只读权限
2,集合类型的下标
元组,数组,字典都可以用下标,这个应该一讲就会,不细说
唯一需要注意的是,至少对于字典而言,下标的返回类型是 不是键值的类型,而是带上了个 ?,如果报错了,考虑先用let先把 ?去掉
3,下标重载
swift的下标其实就只是一个特殊的方法,也可以有不同类型的参数,也可以有不止一个参数,这点不赘述
没了,so easy
二,继承
也是跟c++很像
子类继承父类的属性和方法,这是目前多数语言都广泛使用的特性,swift也不例外
1,概念
首先,跟c++一样,构造函数是不会继承的,需要另外调用
另外,在swift2中,子类声明构造函数需要加上override声明重写,这点我没看官方文档,目测是新加的特性
var str:Array = [1, 2, 3]class family { init() { son = "Default" dad = "Default" mom = "Default" } init(s: String, d:String, m:String) { son = s dad = d mom = m } func set(s s:String, d:String, m:String) { son = s dad = d mom = m } subscript(index:String) -> String { get { if index == "son" { return son; } if index == "dad" { return dad } if index == "mom" { return mom } return "Default" } } var son:String var dad:String var mom:String}class modernFamily:family { override init() { super.init() } override init(s: String, d: String, m: String) { super.init() son = "Manny" mom = "Glorier" dad = "Jay" } }var Dumphy = family(s: "Luke", d: "Phil", m: "Clair")
几个要点无非就是:重写方法和属性要override,调用父类方法和属性要super
此外,像计算属性啊,观察者属性啊什么的都能用
2,禁止重写
在父类的方法添加final能禁止子类重写该方法
在父类class前添加 @final禁止该类被继承
over,see you tomorrow
0 0
- swift学习日记(七)下标 继承
- Swift学习之下标
- Swift学习:2.12 下标脚本
- Swift 学习日记2
- Swift学习日记001
- Swift学习日记002
- Swift学习日记003
- Swift学习日记004
- swift学习日记
- 下标—Swift学习笔记(十五)
- Swift学习- 下标脚本(十二)
- 对照Java学习Swift--下标(Subscripts)
- swift学习笔记(11)- 下标
- Swift下标
- Swift下标
- swift 下标
- Swift下标
- 学习日记02 继承
- 使用Spring框架实现文件上传
- 线程的同步和协调
- 斐波那契数列算法分析
- 使用匿名方法 委托
- Java NIO使用及原理分析(三)
- swift学习日记(七)下标 继承
- leetcode -- Sort Colors -- 重点,排序,two pointers
- 二叉树
- Android Context 是什么?
- 整理一些自己乱码问题的处理
- css3学习
- C语言之结构体和共同体——结构体的定义和使用
- java正则表达式校验移动电话、固话、邮编的校验
- Android仿微信界面--使用FragmentPagerAdapter,viewpager实现(慕课网笔记)