Swift中的静态函数和最终类函数有什么区别

时间:2018-09-16 05:12:09

标签: swift

据我所知,静态函数是静态分配的,而最终类函数也是静态分配的(因为不能覆盖最终函数-就像静态函数一样)。但是,到底有什么区别。有没有?

1 个答案:

答案 0 :(得分:2)

仅仅因为final类函数不能被覆盖并不意味着它是静态分配的。最终类函数将覆盖超类非最终类函数。这样的方法调用必须动态调度。

static仅仅是final class的别名。它们的行为相同:

class C1 { class func foo() {} }
class C2: C1 { override final class func foo() {} }
class C3: C1 { override static func foo() {} }