Z
ZHANK
面向协议

类 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

// === 用于引用类型,== 用于值比较