<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                玩過其他開發語言的小伙伴都知道繼承,也就是子類繼承父類的特性。這在開發過程中非常有用,可以節省大量工作量。 ## 聲明基類 下面我們聲明一個常見的基類Base,有兩個屬性(count、description)和一個方法(inherited),其中description是只讀的。 ~~~ /// 基類 class Base { var count = 0.0 var description: String { return "count:\(count)" } // MARK: 可繼承 func inherited() { } } ~~~ ## 子類化 子類繼承基類很簡單,聲明如下,子類和父類間用“:”隔開,如果有多個父類,父類間用“,”隔開。 ~~~ /// 子類 class Subclass: Base { } ~~~ ## 重寫 在子類中可以實現父類的所有特性,但是有的時候我們想擴展屬性或方法。這個時候就需要用到關鍵字Overriding。 下面讓子類重寫父類的屬性和方法。 ~~~ class Subclass: Base { // 繼承的屬性和方法前都有override override var count:Double { didSet { print("\(__FUNCTION__)") } } override var description: String { return "\(__FUNCTION__)" + super.description } override func inherited() { print("\(__FUNCTION__)") } } ~~~ 可以在屬性和方法前使用override,表示這個屬性和方法是繼承了父類。如果想調用父類的屬性或方法,只需要使用super后面跟你想使用的屬性和方法。你可以理解為self代表當前類,super代表父類。 ## 防止重寫 有的時候我們不希望其他人通過繼承改寫我們的特性,希望它是不可重寫的。這里可以使用關鍵字final,如下所示: - final var/let:防止常量或變量被重寫; - final func:防止實例方法被重寫; - final class func:防止類型方法被重寫; - final subscript:防止下標方法被重寫; - final class:防止當前類被繼承。 這里以實例方法舉例,在Base中添加如下方法: ~~~ final func preventing() { // 如果不想子類繼承,可在類、屬性或方法前添加final } ~~~ 則子類Subclass不可重寫此方法。 ## 其他 ### 參考資料 [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html) ### 文檔修改記錄 | 時間 | 描述 | |-----|-----| | 2015-10-28 | 根據 [The Swift Programming Language (Swift 2.1)](https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/ErrorHandling.html)中的Inheritance總結 | 版權所有:[http://blog.csdn.net/y550918116j](http://blog.csdn.net/y550918116j)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看