<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # Kotlin 抽象類 > 原文: [https://www.programiz.com/kotlin-programming/abstract-class](https://www.programiz.com/kotlin-programming/abstract-class) #### 在本文中,您將了解抽象類以及如何在 Kotlin 中實現抽象類(借助示例)。 與 Java 一樣,`abstract`關鍵字用于在 Kotlin 中聲明抽象類。 無法實例化抽象類(不能創建抽象類的對象)。 但是,您可以從它們中繼承子類。 除非您明確使用`abstract`關鍵字將其抽象,否則抽象類的成員(屬性和方法)是非抽象的。 讓我們舉個例子: ```kt abstract class Person { ? var age: Int = 40 fun displaySSN(ssn: Int) { println("My SSN is $ssn.") } abstract fun displayJob(description: String) } ``` 這里, * 創建一個抽象類`Person`。 您不能創建該類的對象。 * 該類具有非抽象屬性`age`和非抽象方法`displaySSN()`。 如果您需要在子類中覆蓋這些成員,則應使用`open`關鍵字標記它們。 * 該類具有抽象方法`displayJob()`。 它沒有任何實現,必須在其子類中覆蓋。 **注意**:抽象類始終處于打開狀態。 您不需要顯式使用`open`關鍵字從它們繼承子類。 * * * ## 示例:Kotlin 抽象類和方法 ```kt abstract class Person(name: String) { init { println("My name is $name.") } fun displaySSN(ssn: Int) { println("My SSN is $ssn.") } abstract fun displayJob(description: String) } class Teacher(name: String): Person(name) { override fun displayJob(description: String) { println(description) } } fun main(args: Array<String>) { val jack = Teacher("Jack Smith") jack.displayJob("I'm a mathematics teacher.") jack.displaySSN(23123) } ``` 運行該程序時,輸出為: ```kt My name is Jack Smith. I'm a mathematics teacher. My SSN is 23123. ``` 在這里,類`Teacher`從抽象類`Person`派生。 實例化了`Teacher`類的對象`jack`。 在創建時,我們已將`"Jack Smith"`作為參數傳遞給主構造器。 這將執行`Person`類的初始化塊。 然后,使用`jack`對象調用`displayJob()`方法。 請注意,`displayJob()`方法在基類中被聲明為抽象,而在派生類中被覆蓋。 最后,使用`jack`對象調用`displaySSN()`方法。 該方法是非抽象的,并且在`Person`類中聲明(并且不在`Teacher`類中聲明)。 * * * **推薦閱讀**:, [Kotlin 接口](/kotlin-programming/interfaces "Interfaces in Kotlin") Kotlin 接口類似于抽象類。 但是,接口無法存儲狀態,而抽象類可以。 意思是,接口可能具有屬性,但是它必須是抽象的,或者必須提供訪問器實現。 而抽象類的屬性不是強制性的。
                  <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>

                              哎呀哎呀视频在线观看