定义在类型本身上调用的方法,这种方法就叫做类型方法。
1.在方法的func关键字之前加上关键字static,来指定类型方法。
2.类还可以用关键字class来允许子类重写父类的方法实现。
class Father {
static func eat() {
print("eat")
}
class func sleep() {
print("sleep")
}
}
print("==============================")
Father.eat()
Father.sleep()
class Son :Father {
override class func sleep() {
print("son sleep")
}
}
Son.sleep()
不能在子类重写 eat()类方法
override static func eat(){
print("son eat")
}
类只能用 用关键字class来允许 子类重写父类的方法实现。
另外:
通过把方法,属性或下标标记为final来防止它们被重写,只需要在声明关键字前加上final修饰符即可(例如:final var,final func,final class func,以及final subscript)。
如果你重写了带有final标记的方法,属性或下标,在编译时会报错。
在类扩展中的方法,属性或下标也可以在扩展的定义里标记为 final 的。
你可以通过在关键字class前添加final修饰符(final class)来将整个类标记为 final 的。
这样的类是不可被继承的,试图继承这样的类会导致编译报错。