在 Swift 中,类可以通过继承从其他类获得属性和方法。被继承的类称为父类(或超类),继承的类称为子类。子类可以继承父类的特性,并且可以添加自己的新特性。继承允许类层次结构中的代码重用和多态性。
定义一个基类(父类)
在 Swift 中,可以通过定义一个类来作为其他类的父类。父类通常包含一些通用的属性和方法,这些属性和方法可以被子类继承和重写。
示例:
swift">class Vehicle {
var currentSpeed = 0.0
var description: String {
return "traveling at \(currentSpeed) miles per hour"
}
func makeNoise() {
// 空实现,子类可以重写这个方法
}
}
定义子类
在 Swift 中,可以通过 class
关键字来定义一个子类,并通过 super
关键字来访问父类的属性和方法。子类可以重写父类的属性和方法,也可以添加新的属性和方法。
示例:
swift">class Bicycle: Vehicle {
var hasBasket = false
}
class Train: Vehicle {
override func makeNoise() {
print("Choo Choo")
}
}
创建子类实例
可以使用子类来创建对象实例,子类实例会继承父类的属性和方法,同时也可以访问子类自己的属性和方法。
示例:
swift">let bicycle = Bicycle()
bicycle.currentSpeed = 15.0
print(bicycle.description) // 输出:traveling at 15.0 miles per hour
let train = Train()
train.makeNoise() // 输出:Choo Choo
防止重写
在 Swift 中,可以使用 final
关键字来防止类、属性或方法被继承或重写。
示例:
swift">final class FinalClass {
// 这个类不能被继承
}
class AnotherClass {
final func cannotBeOverridden() {
// 这个方法不能被重写
}
}
继承是面向对象编程中的重要概念,它允许类之间共享和扩展代码。在 Swift 中,继承是一种强大的机制,可以帮助我们构建具有层次结构的类型,并实现代码重用和多态性。