Swift 编程中的类继承、值类型与引用类型详解
1. 继承与类的层次结构
在编程世界里,类可以有超类。具有超类的类是该超类的子类,并继承其超类的成员。这就使得类类型能够形成一个层次化的树状结构。
在 Objective - C 中,类是唯一的对象类型。虽然一些内置的 Swift 结构体类型能神奇地桥接到 Objective - C 类类型,但自定义的结构体类型却没有这种特性。所以,在使用 Swift 进行 iOS 编程时,声明类而非结构体的一个原因,就是为了与 Objective - C 和 Cocoa 进行交互。
2. 值类型与引用类型
枚举和结构体属于值类型,而类属于引用类型,这是它们之间的一个重大区别。下面详细解释这意味着什么。
2.1 引用类型实例是可变的
值类型表面上看似可变,但实际上并非如此。以结构体为例,结构体是值类型:
struct Digit {
var number : Int
init(_ n:Int) {
self.number = n
}
}
从 Swift 的赋值语法来看,我们可能会认为可以改变 Digit 的 number 属性:
var d = Digit(123)
d.number = 42
但实际上,当我们看似在改变值类型的实例时,实际上是用一个
超级会员免费看
订阅专栏 解锁全文
9

被折叠的 条评论
为什么被折叠?



