swift学习日记(七)下标 继承
2015-12-15 21:46
465 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u013418097/article/details/50321109
一,下标
下标这个也是可以跟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
相关文章推荐
- Swift 基础学习(继承)
- Swift学习——类的定义,使用,继承,构造等(五)
- 【Swift学习】Swift编程之旅---Subscripts下标(十六)
- Swift编程语言学习14——Swift中如何使用继承(Inheritance)
- ios swift学习日记4-字符串和字符
- ios swift学习日记1-Swift 初见
- 黑马程序员_JAVA学习日记_JAVA中API中Math和Random对象和继承1
- Swift学习:2.12 下标脚本
- swift学习笔记之继承
- Swift的属性,方法,下标脚本以及继承
- Entity Framework Code First 学习日记(9)-映射继承关系
- Swift学习:2.13 继承
- 学习日记之桥接模式和多重继承
- 5.Swift枚举|结构体|类|属性|方法|下标脚本|继承
- Swift学习日记004
- java学习日记_33:面向对象之继承中的成员关系
- swift 学习- 13 -- 下标
- 黑马程序员_学习日记4_C#基础归纳总结之继承
- 【swift】15-0610 下标 继承和扩展 初始化和反初始化
- swift基础学习(04)[运算符、属性、属性观察器、方法、下脚标本、继承、构造器]