类 class
引用类型 class、继承、final、deinit 析构、恒等 ===
类 class
Swift class 是引用类型——支持继承、类型转换、deinit 析构器。final 禁止继承以优化性能。
学完本章你将: 掌握引用类型、继承、final、deinit、=== 恒等。
class 定义
swift
class Counter {
var count = 0
func increment() {
count += 1
}
func increment(by amount: Int) {
count += amount
}
func reset() {
count = 0
}
}
let counter = Counter() // let 也能修改属性——counter 是指针
counter.increment()
counter.increment(by: 5)
print(counter.count) // 6
继承
swift
class Vehicle {
var speed = 0
func description() -> String { "速度 \(speed) km/h" }
}
class Car: Vehicle {
var gear = 1
override func description() -> String {
super.description() + ", 档位 \(gear)"
}
// final —— 禁止子类再重写
final func honk() { print("嘀嘀") }
}
deinit 析构
swift
class Resource {
init() { print("资源获取") }
deinit { print("资源释放") } // 不再被引用时自动调用
}
恒等 ===
swift
let a = Counter()
let b = a
a === b // true——同一个实例
a !== b // false
// === 用于引用类型,== 用于值比较