ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.