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