250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

Swift 기초 문법 - class func vs static func 본문

Swift 이론

Swift 기초 문법 - class func vs static func

스윞남 2024. 1. 24. 01:18
728x90
반응형
SMALL

class func VS static func 에 대해 알아보겠습니다!

 

스위프트에서 class func 와 static func 는 둘다 클래스 레벨에서 정의되는 메서드입니다.

*두 가지의 주요 차이점은 상속과 관련이 있습니다.*

 

- class func

class func 는 클래스 계층 구조에서 메서드가 상속되고 재정의 될 수 있음을 나타냅니다.
서브클래스에서 class func 로 정의된 메러드를 오버라이드하여 새로운 구현을 제공할 수 있습니다.

 

class A {
    class func someClassFunc() {
        print("Class A's class func")
    }
}

class B: A {
    override class func someClassFunc() {
        print("Class B's class func")
    }
}
let instanceA: A = B()
instanceA.someClassFunc() // 출력: "Class B's class func"

 

- static func

static func는 메서드가 상속되지 않고, 오버라이드될 수 없음을 나타냅니다. 
서브클래스에서 static func로 정의된 메서드를 동일한 이름으로 다시 정의하더라도, 부모 클래스의 메서드가 가려진 채로 유지됩니다.

 

class X {
    static func someStaticFunc() {
        print("Class X's static func")
    }
}

class Y: X {
    static func someStaticFunc() {
        print("Class Y's static func")
    }
}
let instanceX: X = Y()
instanceX.someStaticFunc() // 출력: "Class X's static func"

 

*class func는 클래스 계층 구조에서 상속과 오버라이드가 가능한 메서드이며, static func(=final class func)는 상속되지 않고 오버라이드되지 않는 메서드입니다.* 

 

출처 : 개발하는 정대리

728x90
반응형
LIST