کلاس مجرد در برنامه نویسی کاتلین

4 سال پیش
کلاس مجرد در برنامه نویسی کاتلین

کلاس مجرد در برنامه نویسی کاتلین

در این ادامه آموزش های برنامه نویسی سایت سورس باران، با کلاس مجرد در برنامه نویسی کاتلین (Abstract Class) و نحوه پیاده سازی آن در کاتلین (به کمک مثال) آشنا خواهید شد.

مانند جاوا، با استفاده از کلید واژه Abstract برای اعلان کلاسهای مجرد در کاتلین استفاده می شود. از یک کلاس مجرد نمی‌توانید وهله‌هایی بسازید (شما نمی توانید شی های یک کلاس مجرد را ایجاد کنید). با این حال، شما می توانید کلاس های مجرد آنها را به ارث ببرید.

اعضای (مشخصه ها و روشها) یک کلاس مجرد به صورت غیر مجرد هستند، مگر اینکه به صراحت از کلید واژه Abstract برای مجرد کردن آنها استفاده کنید. بیایید مثالی بزنیم:

abstract class Person {
    
    var age: Int = 40

    fun displaySSN(ssn: Int) {
        println("My SSN is $ssn.")
    }

    abstract fun displayJob(description: String)
}

 

در مثال بالا به صورت زیر عمل شده است؛

  • یک کلاس مجرد به نام Person ایجاد می شود شما نمی توانید شی ها را از روی این کلاس ها ایجاد کنید.
  • کلاس دارای یک مشخصه غیر مجرد  به نام age یک روش غیر مجرد displaySSN () است. اگر لازم است این اعضا را در زیر کلاس override کنید، باید آن‌ها را با کلیدواژه‌های open نشانه‌گذاری نمایید.
  • کلاس دارای یک متد مجرد displayJob () است. هیچ متدی برای پیاده سازی آن وجود ندارد و باید در زیر کلاس های آن override شود.

توجه: کلاسهای مجرد همیشه open هستند. برای به ارث بردن کلاسهای مجرد از آنها نیازی به استفاده صریح از کلیدواژه‌ open نیست.

 

مثال: کلاس و روش مجرد  کاتلین

abstract class Person(name: String) {

    init {
        println("My name is $name.")
    }

    fun displaySSN(ssn: Int) {
        println("My SSN is $ssn.")
    }

    abstract fun displayJob(description: String)
}

class Teacher(name: String): Person(name) {

    override fun displayJob(description: String) {
        println(description)
    }
}

fun main(args: Array<String>) {
    val jack = Teacher("Jack Smith")
    jack.displayJob("I'm a mathematics teacher.")
    jack.displaySSN(23123)
}

 

خروجی کد به شکل زیر می باشد؛

My name is Jack Smith.
I'm a mathematics teacher.
My SSN is 23123.

 

در اینجا،  یک کلاس به نام Teacher  از یک کلاس مجرد Person مشتق شده است.

در مثال بالا شی ای به نام  jack از کلاس Teacher وهله سازی شده است. ما “Jack Smith” را هنگام ایجاد آن به عنوان یک پارامتر به سازنده اولیه ارسال کرده ایم. این بلوک مقداردهنده کلاس Person را اجرا می کند.

سپس، با استفاده از شی jack متد displayJob () فراخوانی می شود. توجه داشته باشید که متد () displayJob در کلاس پایه مبنا به صورت مجرد اعلان شده است و در کلاس متشق‌شده نیز override می شود.

سرانجام، با استفاده از شی jack متد displaySSN () فراخوانی می شود. در اینجا متد غیر مجرد است و در کلاس Person اعلان یافته می شود (و در کلاس Teacher اعلام یافته نمی شود).

اینترفیس های کاتلین مشابه کلاس های مجرد هستند. با این حال، اینترفیس ها نمی توانند حالت را ذخیره کنند در حالی که کلاس های مجرد می توانند.

اینترفیس ممکن است مشخصه داشته باشد، اما باید مجرد باشد یا پیاده‌سازی accessor ارائه کند. در حالی که مجرد بودن مشخصه ها برای کلاس مجرد اجباری نیست.

منبع.

لیست جلسات قبل آموزش برنامه نویسی کاتلین

  1. معرفی کاتلین،  Kotlin Hello World – اولین برنامه کاتلین
  2. انواع متغیرهای پایه در کاتلین
  3. عملگرهای برنامه نویسی کاتلین
  4. تبدیل نوع در برنامه نویسی کاتلین
  5. عبارت ها، گزاره ها و بلوک ها در برنامه نویسی کاتلین
  6. کامنت ها در برنامه نویسی کاتلین
  7. ورودی / خروجی پایه در برنامه نویسی کاتلین
  8. عبارت if در برنامه نویسی کاتلین
  9. عبارت when در برنامه نویسی کاتلین
  10. حلقه های while و do … while در برنامه نویسی کاتلین
  11. حلقه for در برنامه نویسی کاتلین
  12. عبارت break در برنامه نویسی کاتلین
  13. عبارت continue در برنامه نویسی کاتلین
  14. توابع در برنامه نویسی کاتلین
  15. فراخوانی تابع میانوندی در برنامه نویسی کاتلین
  16. آرگومان ‌های پیش ‌فرضآرگومان ‌های پیش ‌فرض و نام ‌دار در برنامه نویسی کاتلین
  17. توابع بازگشتی در برنامه نویسی کاتلین
  18. کلاس و شی در برنامه نویسی کاتلین
  19. سازنده ها در برنامه نویسی کاتلین
  20. Getter ها و Setter ها در برنامه نویسی کاتلین
  21. وراثت در برنامه نویسی کاتلین 
  22. مادیفایرهای نمایانی در برنامه نویسی کاتلین

 

0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه