Swift防止继承或重写的final
Swift防止继承或重写的final

Swift防止继承或重写的final

final 是 Swift 中用于防止继承或重写的关键字。它可以用在类、方法、属性、下标上,起到“封闭”作用。

final用法

1、final class:不允许其他类继承这个类。

2、final func:子类不能重写这个方法。

3、final var/let:子类不能重写这个属性。

4、final subscript:子类不能重写这个下标。

示例说明

1、final class

final class Animal {
    func speak() {
        print("Animal sound")
    }
}

// ❌ 报错:Cannot inherit from final class 'Animal'
// class Dog: Animal {}

2、final func

class Animal {
    final func sleep() {
        print("Sleeping")
    }
}

class Dog: Animal {
    // ❌ 报错:Overriding 'sleep' is not allowed
    // override func sleep() { }
}

3、final var / let

class Animal {
    final var name: String = "Unnamed"
}

class Dog: Animal {
    // ❌ 报错:Cannot override with a stored property 'name'
    // override var name: String = "Doggo"
}

使用场景

1、声明工具类、单例类不希望被继承。

2、防止子类误改写某些关键行为。

3、提高运行时性能:Swift 编译器对 final 成员可以做更多优化,因为它们不会被动态重写。

   

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开发者。

欢迎加入我们的 微信交流群QQ交流群,交流更多精彩内容!
微信交流群二维码 QQ交流群二维码

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注