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

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

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

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

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

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

 

چگونه یک اینترفیس در کاتلین تعریف کنیم؟

کلید واژه interface برای تعریف اینترفیس ها در کاتلین استفاده می شود. به عنوان مثال،

 

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

  • یک اینترفیس MyInterface ایجاد شده است.
  • این اینترفیس دارای یک مشخصه مجرد test  و یک متد مجرد foo () است.
  • اینترفیس همچنین یک متد غیر مجرد به نام hello() دارد.

 

 

چگونه یک اینترفیس در کاتلین  را پیاده سازی کنیم؟

روش پیاده ‌سازی یک کلاس یا شی در کاتلین به صورت زیر است:

 

در مثال بالا، یک کلاس InterfaceImp اینترفیس MyInterface را پیاده سازی می کند.

این کلاس اعضای مجرد (مشخصه test و متد foo) مربوط به اینترفیس را override می‌کند.

 

مثال: چگونه یک اینترفیس در کار می کند؟

 

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

 

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

 

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

 

در مثال بالا، prop مجرد نیست. با این حال، در داخل اینترفیس معتبر است زیرا پیاده سازی را برای accessor فراهم می کند.

با این حال، شما نمی توانید کدی مانند val prop: Int = 23 در داخل اینترفیس نوشت.

 

پیاده سازی دو یا چند اینترفیس در یک کلاس در کاتلین

کاتلین اجازه وراثت چندگانه واقعی را نمی دهد. با این حال، پیاده سازی دو یا چند اینترفیس در یک کلاس واحد امکان پذیر است. به عنوان مثال؛

 

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

حل تعارض‌ های override کردن (اینترفیس چندگانه)

فرض کنید، دو اینترفیس (A و B) یک متد غیر مجرد با همان نام دارند (بگذارید بگوییم روش callMe ()). شما این دو اینترفیس را در یک کلاس پیاده سازی کرده اید (بگذارید بگوییم C). حال، اگر با استفاده از شی کلاس C روش callMe () را فراخوانی کنید، کامپایلر خطایی ایجاد می کند. مثال زیر را با دقت دنبال کنید؛

 

خطا؛

 

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

 

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

 

در مثال بالا، پیاده ‌سازی خاص متد () callMe در کلاس C ارائه شده است.

 

گزاره super() <A> .callMe  متد () callMe کلاس A را فراخوانی می کند. به همین ترتیب، super() <B> .callMe متد ()callMe  کلاس B را فراخوانی می کند.

منبع.

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

  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. مادیفایرهای نمایانی در برنامه نویسی کاتلین
  23. کلاس مجرد در برنامه نویسی کاتلین

 

 

امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه