-
instance 메서드 vs class 메서드Q 2023. 5. 5. 17:12
Instance Method
: Class, Stuct, Enum 형태의 인스턴스에 속한 메소드
클래스를 통해 호출할 수 없고, 클래스의 인스턴스를 만들어 실체화 하여 생성된 인스턴스를 통해서 호출할 수 있는 메소드
Class Method
: 인스턴스를 만들어 실체화 하지 않아도 클래스를 통해 직접적으로 호출 가능하다.
Class Method는 왜 사용하는가?
: static 메서드는
상속이 불가능하다.그런데 이를 상속해서 사용하기 위해 class Method를 사용, overriding이 가능해진다.static 메서드: 상속해서 사용은 가능, 오버라이딩 해서 사용할 수 있도록 만든 것이 class 메서드이다.
[예제 코드]
import UIKit class Person { class func sing(){ print("노래하다") } static func lying(){ print("휴식중...") } } class Idol:Person{ override class func sing(){ print("idol⭐️") print("노래하다") } //!오류 발생: Cannot override static method. // override static func lying(){ // // } //인스턴스 메서드 func play(){ print("오늘은 게임해요") } } Person.sing() Idol.sing() Idol.lying() //클래스의 인스턴스를 만들어 실체화 var mina : Idol = Idol() //실체화 하여 실행 mina.play()
'Q' 카테고리의 다른 글
프로그래밍 패러다임의 필요성 (0) 2023.05.05