swift static func 和 class func的区

2024-08-06  本文已影响0人  IMKel

static func 和 class func 都用于定义类型级别的方法(即类方法),但它们在继承行为方面存在差异。以下是它们的区别和使用场景:

static func

示例

class ParentClass {
    static func staticMethod() {
        print("This is a static method.")
    }
}

class ChildClass: ParentClass {
    // Cannot override static method
    // override static func staticMethod() {} // This will cause a compilation error
}

// Usage
ParentClass.staticMethod() // Prints: This is a static method.

class func

class ParentClass {
    class func classMethod() {
        print("This is a class method.")
    }
}

class ChildClass: ParentClass {
    override class func classMethod() {
        print("This is an overridden class method.")
    }
}

// Usage
ParentClass.classMethod() // Prints: This is a class method.
ChildClass.classMethod() // Prints: This is an overridden class method.

区别总结

上一篇 下一篇

猜你喜欢

热点阅读