是的,Kotlin 抽象類可以包含構造方法。在 Kotlin 中,抽象類的構造方法用于初始化抽象類的屬性或者執行其他必要的設置操作。當創建一個抽象類的子類時,子類的構造方法會自動調用抽象類的構造方法來確保抽象類的屬性被正確初始化。
下面是一個簡單的 Kotlin 抽象類示例,包含構造方法:
abstract class Shape(val name: String) {
abstract fun area(): Double
}
class Circle(name: String, val radius: Double) : Shape(name) {
override fun area(): Double {
return Math.PI * radius * radius
}
}
class Rectangle(name: String, val width: Double, val height: Double) : Shape(name) {
override fun area(): Double {
return width * height
}
}
在這個示例中,Shape
是一個抽象類,包含一個構造方法 Shape(val name: String)
,用于初始化形狀的名稱。Circle
和 Rectangle
是 Shape
的子類,它們的構造方法分別調用了 Shape
的構造方法來確保名稱被正確初始化。