我有两个类A,B。B是A的子类。我可以对B类使用final吗。我想减少动态分配。如果类b中的方法覆盖了类A方法怎么办?方法调度将如何工作?
class A {
///
}
final class B : Class A {
}
答案 0 :(得分:1)
是的,您可以
Swift为此提供了一个final关键字:当您将一个类声明为final时,其他任何类都不能从该类继承。这意味着他们无法覆盖您的方法来更改您的行为–他们需要以编写类的方式使用您的类。
final关键字是对类,方法或属性的限制,指示不能覆盖声明。这使编译器可以安全地消除动态调度间接寻址。
因此您可以使用它。