在Kotlin中,抽象類可以通過使用abstract
關鍵字來定義屬性。這些屬性必須在抽象類中聲明為抽象的,并且它們沒有具體的實現。派生類必須提供這些抽象屬性的具體實現。以下是一個示例:
// 定義一個抽象類 AbstractShape
abstract class AbstractShape {
// 定義一個抽象屬性 radius
abstract val radius: Double
// 定義一個抽象屬性 centerX
abstract val centerX: Double
// 定義一個抽象屬性 centerY
abstract val centerY: Double
// 定義一個抽象方法 getArea
abstract fun getArea(): Double
}
// 定義一個派生類 Circle,繼承自 AbstractShape
class Circle(radius: Double, centerX: Double, centerY: Double) : AbstractShape() {
override val radius: Double
get() = this@Circle.radius
override val centerX: Double
get() = this@Circle.centerX
override val centerY: Double
get() = this@Circle.centerY
override fun getArea(): Double {
return Math.PI * radius * radius
}
}
在這個示例中,我們定義了一個名為AbstractShape
的抽象類,它具有三個抽象屬性:radius
、centerX
和centerY
。我們還定義了一個名為Circle
的派生類,它繼承自AbstractShape
并提供了這些抽象屬性的具體實現。