Swift中lazy作惰性求值static方法与class方法的区别
在Swift中,static
和class
这两个关键字都可以修饰类的方法,以表明这个方法是一个类方法。不过这两者稍微有一些区别:class
修饰的类方法可以被子类重写,而static
修饰的类方法则不能。如下代码所示:
class A {
class func method1() {
print("A.method1");
}
static func method2() {
print("A.method2");
}
}
class B : A {
override class func method1() {
print("B.method1");
}
override static func method2() { // Error: Cannot override static method
print("B.method2");
}
}
B.method1()
B.method2()