在 Swift 中,类方法可以使用 class
或 static
关键字来定义,但它们有一些关键的区别:
-
static
关键字:- 使用
static
定义的类方法不能被子类重写(override)。它们在编译时是静态绑定的。 - 适用于那些你不希望被子类重写的方法。
class SomeClass { static func staticMethod() { print("This is a static method.") } }
class
关键字: - 使用
class
定义的类方法可以被子类重写。这些方法在运行时是动态绑定的。 - 适用于那些你希望子类能够重写的方法。
class SomeClass { class func classMethod() { print("This is a class method.") } } class SubClass: SomeClass { override class func classMethod() { print("This is an overridden class method.") } }
总结:
- 如果你不希望方法被子类重写,使用
static
关键字。 - 如果你希望方法可以被子类重写,使用
class
关键字。 -
根据你的需求选择合适的关键字定义类方法即可。
- 使用