Kotlin - 抽象類



Kotlin 抽象類類似於 Java 抽象類,不能被例項化。這意味著我們不能建立抽象類的物件。但是,我們可以從 Kotlin 抽象類繼承子類。

Kotlin 抽象類使用abstract關鍵字宣告在類名前面。抽象類的屬性和方法是非抽象的,除非我們明確使用abstract關鍵字使其成為抽象的。如果我們想在子類中覆蓋這些成員,那麼我們只需要在子類中在其前面使用override關鍵字。

abstract class Person {
   var age: Int = 40

   abstract fun setAge()   // Abstract Method

   fun getAge() {          // Non-Abstract Method
      return age
   }
} 
抽象類始終是開放的。您不需要顯式使用open關鍵字從它們繼承子類。

示例

以下是一個簡單的示例,展示了 Kotlin 抽象類及其透過子類的實現

abstract class Person(_name: String) {
   var name: String
   abstract var age: Int 
   
   // Initializer Block
   init {
      this.name = _name
   }
   
   abstract fun setPersonAge(_age:Int)
   abstract fun getPersonAge():Int
   
   fun getPersonName(){
       println("Name = $name")
   }
}
class Employee(_name: String): Person(_name) {
    override var age: Int = 0

    override fun setPersonAge(_age: Int) {
       age = _age
    }
    override fun getPersonAge():Int {
       return age
    }
}

fun main(args: Array<String>) {
   val employee = Employee("Zara")
   var age : Int
   
   employee.setPersonAge(20)
   
   age = employee.getPersonAge()
    
   employee.getPersonName()
   println("Age = $age")
   
}

執行以上 Kotlin 程式時,將生成以下輸出

Name = Zara
Age = 20

這裡,類Employee是從抽象類Person派生的。我們在子類Employee中實現了兩個抽象方法和一個抽象屬性。這裡值得注意的是,所有抽象成員都已在子類中使用override進行了覆蓋,如果子類繼承抽象類,則這是強制性的。

總而言之,在宣告中包含abstract關鍵字的 Kotlin 類稱為抽象類。

  • 抽象類可以包含或不包含抽象方法,即沒有主體的方法(public void get();)

  • 但是,如果一個類至少有一個抽象方法,那麼該類必須宣告為抽象類。

  • 如果一個類被宣告為抽象類,則它不能被例項化。

  • 要使用抽象類,您必須從另一個類繼承它,並在其中提供對抽象方法的實現。

  • 如果繼承抽象類,則必須在其中提供對所有抽象方法的實現。

測驗時間 (面試 & 考試準備)

答案:D

解釋

所有給定的陳述關於 Kotlin 抽象類都是正確的。

Q 2 - 使用哪個關鍵字來實現抽象類的抽象成員

A - init

B - override

C - Override

D - 以上都不是

答案:B

解釋

我們使用override關鍵字來實現抽象類的抽象成員

廣告

© . All rights reserved.