[iOS] class func vs staticfunc
class func vs staticfunc
스위프트에는 세가지 함수 종류가 있습니다. 앞에 붙는 키워드에 따라서 instance / class/ static으로 나타냅니다.
class Sample {
// 1. Instance 함수
func myUnstanceFunc() {}
// 2. class 함수
class func myClassFunc() {}
// 3. static 함수
static func myStaticFunc() {}
}
공통점
static과 class 메소드는 타입 메소드라 불린다. 모두 class 객체보다는 class 자체와 연관되어 있습니다. () 생성자를 통해서 인스턴스를 생성하지 않더라도 접근이 가능하다
Sample.myClassFunc()
Sample.myStaticFunc()
차이점
차이점은 해당 class를 상속 받은 subclass에서 나타난다
class 함수 - override 가능
static 함수 - override 불가능
class SubSample : Sample {
// Compile Ok
override class func myClassFunc() {}
// Compile Error
ouverride static func myStaticFunc() {}
}