در کاتلین برای ایجاد کلاسهای انتزاعی از کلمه کلیدی abstract قبل از کلمه class استفاده میکنند. از یک کلاس abstract نمیتوان نمونه سازی کرد. به این معنا که نمیتوان آبجکتی از آن ساخت.
نحوه تعریف abstract class:
abstract class className {
}
مواردی که باید به آنها توجه داشت:
- از یک abstract class نمیتوان object ساخت
- همه متغیرها و متدهای یک کلاس abstract به صورت پیشفرض abstract نیستند؛ مگر اینکه قبل از تعریف آنها از کلمه abstract استفاده شود
- اگر کلاسی را abstract کردیم، نیازی به نوشتن کلمه open نیست زیرا یک abstract به صورت پیشفرض open است
- یک متد abstract بدنه ندارد و باید بدنه آن در کلاسهایی که این کلاس abstract را مشتق کردهاند، تعریف شود
abstract class className(val x: String) { // Non-Abstract Property
abstract var y: Int // Abstract Variable
fun function2() { // Non-Abstract Method
println("Non abstract function")
}
abstract fun function1() // Abstract Method
}