Published 2022-03-13

Swift - 继承

在 Swift 中,继承(Inheritance)是一种定义新类的方法,使其从现有类继承属性和方法。新类称为子类(Subclass),被继承的类称为父类(Superclass)。

子类可以重写(override)父类的属性和方法,也可以添加新的属性和方法。子类还可以继续被其他类继承,从而形成类的层次结构。

在 Swift 中,继承可以通过在类的定义中使用冒号(:)来实现。例如:

class Animal {
var name: String = ""
 
    func makeSound() {
        // 产生动物叫声
    }
}
 
class Dog: Animal {
var breed: String = ""
 
    override func makeSound() {
        // 产生狗叫声
    }
}

在上面的示例中,我们定义了两个类 Animal 和 Dog。Dog 继承自 Animal,并添加了一个名为 breed 的属性。Dog 还重写了 Animal 的 makeSound() 方法。

通过继承,Dog 类获得了 Animal 类中的所有属性和方法。这意味着,我们可以在 Dog 类中使用 Animal 类中定义的属性和方法,而不必重复编写相同的代码。此外,通过重写 makeSound() 方法,我们可以根据需要修改 Dog 类的行为。

在 Swift 中,我们还可以使用关键字 final 来防止子类重写父类的属性或方法。例如:

class Animal {
final var name: String = ""
 
    final func makeSound() {
        // 产生动物叫声
    }
}
 
class Dog: Animal {
// 无法重写 name 或 makeSound 方法
}

在上面的示例中,我们使用关键字 final 来标记 name 和 makeSound() 方法,从而防止子类重写这些属性和方法。

继承是 Swift 语言中强大而灵活的功能之一。通过继承,我们可以轻松地扩展现有类的功能,从而构建出更复杂和强大的程序。同时,继承也需要谨慎使用,以避免出现代码的复杂性和耦合度过高等问题。