Swift3(스위프트3)

swift3 스위프트3 상속

알통몬_ 2017. 7. 7. 11:13
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

이번 포스팅에서는 상속에 대해서 공부합니다.


스위프트에서 상속은 클래스 또는 프로토콜 등에서 가능합니다.

열거형, 구조체에서는 사용할 수 없습니다.


형태 :

class ChildClass : ParentClass {

   // 구현

}


예제)

부모 클래스

class Espresso {

    var name : String = ""


    func info() {

       print("\(name) 입니다")

    }


   class func selectShot() {

        print("샷은 변경 가능합니다.")

    }


    final func usedBean() {

        print("브라질 산토스 원두를 사용합니다")

    }


    static func usedBean2() {

        print("브라질 산토스 원두를 사용합니다")

    }


   final class func baseShot() {

       print("기본은 2샷입니다")

    }

}

// 위 Bean 클래스에서 선언한 함수들 중 final, static, final class 키워드가 포함된 함수들은

자식 클래스에서 재정의를 할 수 없습니다.

자식 클래스에서 부모 클래스의 함수를 재정의할 때는 부모 클래스의 함수 앞에 override 키워드를 붙여줍니다.

class AltongCoffee : Cafe {

    var myName : String = ""

    

    override func info() {

       print("안녕하세요 \(name)입니다.")

    }


    override class func selectShot() {

       print("3샷으로 주세요")

    }

}


let bean : Bean = Bean()

let altong : AltongCoffee : AltongCoffee()


bean.name = "원두"

altong.myName = "알통커피"


bean.info() // 원두입니다

bean.usedBean() // 브라질 산토스 원두를 사용합니다

bean.usedBean2() // 브라질 산토스 원두를 사용합니다

bean.selectShot() // 샷은 변경 가능합니다.

bean.baseShot() // 기본은 2샷입니다


altong.info() // 안녕하세요 알통커피입니다

altong.usedBean() // 브라질 산토스 원두를 사용합니다

altong.usedBean2() // 브라질 산토스 원두를 사용합니다

altong.selectShot() // 3샷으로 주세요

altong.baseShot() // 기본은 2샷입니다


이해가 되셨나요 ㅎㅎ


별도의 키워드가 붙지 않은 함수와 class 키워드가 붙은 함수만 재정의가 가능합니다.

재정의할 때는 앞에 override 키워드를 붙여주면 되구요~


이상입니다!





반응형