-
인스턴스 메소드/ 클래식 메소드/ 스태틱 메소드개발/Swift 2022. 3. 1. 12:29
class A { func instanceM(){ } static func staticM(){ } class func classM(){ } }
클래스에는 인스턴스 메소드 스태틱 메소드 클래스 메소드를 구현 할수있다.
이들의 차이점은 다음과 같다.
A.staticM() A.classM() A.instanceM() //Fail
스태틱 클래스 메소드와 달리 인스턴스 메소드는 인스턴스화 이후에 메소드를 사용 할수있다.
스태틱 클래스 메소드는 클래스에서 직접 메소드를 호출할수있다.
그러면 스태틱 클래스 메소드는 같은걸까?
이 둘의 차이점은 오버라이딩 가능 여부에 따라 갈린다.
클래스 메소드는 오버라이딩이 가능한 메소드이다.
반면 스태틱 메소드는 불가능 하다.
즉 상속을 받을때 클래스 메소드를 사용하며
그렇지 않을떄 스태틱 메소드를 사용한다.
struct A { static func staticM(){ } class func classM(){ //ERROR } }
struct 에서는 상속이 안되므로 클래스 메소드를 사용할수 없다.
스태틱 메소드만 사용이 가능하다.
class A { class func staticM(){} } class B : A { override class func staticM(){} }
위와 같이 클래식 메소드를 상속 받아 오버라이딩 할 경우
클래스 메소드를 사용하면 된다. 스태틱 메소드의 경우 에러를 뱉을것이다.
'개발 > Swift' 카테고리의 다른 글
[Swift] PassingCars 코딜리티 코딩테스트 (0) 2022.03.04 [Swift] FrogRiverOne 코딜리티 코딩테스트 (0) 2022.03.04 RxSwift 는 무엇일까 (0) 2022.02.19 Class / Struct 은 뭐가 다를까 (0) 2022.02.13 [Swift] 조이스틱 코딩테스트 프로그래머스 (0) 2022.02.13