Base and Derived Classes:
class BaseClass{
class func staticMethod(){
println("BaseClass.staticMethod")
} class func staticMethodWithSelfCall(){
self.staticMethod()
} func instanceMethodWithStaticCall(){
self.dynamicType.staticMethod()
}
} class DerivedClass : BaseClass{
override class func staticMethod(){
println("DerivedClass.staticMethod")
}
}
Test Code:
BaseClass.staticMethod()
DerivedClass.staticMethod() BaseClass.staticMethodWithSelfCall()
DerivedClass.staticMethodWithSelfCall() BaseClass().instanceMethodWithStaticCall()
DerivedClass().instanceMethodWithStaticCall()
Output:
BaseClass.staticMethod
DerivedClass.staticMethod
BaseClass.staticMethod
DerivedClass.staticMethod
BaseClass.staticMethod
DerivedClass.staticMethod