据我所知,静态函数是静态分配的,而最终类函数也是静态分配的(因为不能覆盖最终函数-就像静态函数一样)。但是,到底有什么区别。有没有?
答案 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() {} }