- Kotlin 教程
- Kotlin - 首頁
- Kotlin - 概述
- Kotlin - 環境設定
- Kotlin - 架構
- Kotlin - 基本語法
- Kotlin - 註釋
- Kotlin - 關鍵字
- Kotlin - 變數
- Kotlin - 資料型別
- Kotlin - 運算子
- Kotlin - 布林值
- Kotlin - 字串
- Kotlin - 陣列
- Kotlin - 範圍
- Kotlin - 函式
- Kotlin 控制流
- Kotlin - 控制流
- Kotlin - if...Else 表示式
- Kotlin - When 表示式
- Kotlin - For 迴圈
- Kotlin - While 迴圈
- Kotlin - Break 和 Continue
- Kotlin 集合
- Kotlin - 集合
- Kotlin - 列表
- Kotlin - 集合
- Kotlin - 對映
- Kotlin 物件和類
- Kotlin - 類和物件
- Kotlin - 建構函式
- Kotlin - 繼承
- Kotlin - 抽象類
- Kotlin - 介面
- Kotlin - 可見性控制
- Kotlin - 擴充套件
- Kotlin - 資料類
- Kotlin - 密封類
- Kotlin - 泛型
- Kotlin - 委託
- Kotlin - 解構宣告
- Kotlin - 異常處理
- Kotlin 有用資源
- Kotlin - 快速指南
- Kotlin - 有用資源
- Kotlin - 討論
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 抽象類都是正確的。
答案:B
解釋
我們使用override關鍵字來實現抽象類的抽象成員
廣告