网站死链检测工具,广告公司电话,艺术家网站源码,北京网站seo排名优化Swift 继承基础在 Swift 中#xff0c;继承是面向对象编程的核心概念之一。子类可以继承父类的属性和方法#xff0c;并可以重写或扩展它们。继承的语法使用 class 关键字定义父类#xff0c;子类通过 : 和父类名实现继承。class Vehicle {var currentSpeed 0.0func makeNo…Swift 继承基础在 Swift 中继承是面向对象编程的核心概念之一。子类可以继承父类的属性和方法并可以重写或扩展它们。继承的语法使用class关键字定义父类子类通过:和父类名实现继承。class Vehicle { var currentSpeed 0.0 func makeNoise() { print(Some generic noise) } } class Bicycle: Vehicle { var hasBasket false }方法重写子类可以重写父类的方法使用override关键字标明。通过super关键字可以调用父类的实现。class Train: Vehicle { override func makeNoise() { super.makeNoise() print(Choo choo) } } let train Train() train.makeNoise() // 输出: Some generic noise\nChoo choo属性重写子类可以重写父类的计算属性和观察属性。对于存储属性Swift 不允许直接重写但可以通过计算属性间接实现。class Car: Vehicle { var gear 1 override var currentSpeed: Double { didSet { gear Int(currentSpeed / 10.0) 1 } } } let car Car() car.currentSpeed 25 print(car.gear) // 输出: 3防止重写使用final关键字可以防止方法、属性或整个类被重写或继承。final class FinalClass { final func cannotOverride() { print(This method cannot be overridden) } } // 以下代码会报错 // class SubClass: FinalClass {}初始化器继承Swift 的子类默认不继承父类的初始化器但在满足一定条件时会自动继承。可以使用super.init调用父类的初始化器。class Food { var name: String init(name: String) { self.name name } } class RecipeIngredient: Food { var quantity: Int init(name: String, quantity: Int) { self.quantity quantity super.init(name: name) } }多态与类型转换继承实现了多态可以通过类型检查运算符is和类型转换运算符as?或as!操作不同类型的对象。let vehicles: [Vehicle] [Car(), Bicycle(), Train()] for vehicle in vehicles { if let car vehicle as? Car { print(Found a car with gear \(car.gear)) } }协议与继承的结合Swift 支持协议继承类可以同时继承父类和遵循协议实现更灵活的设计。protocol Drivable { func drive() } class ElectricCar: Car, Drivable { func drive() { print(Driving silently) } }