تعداد بازدید: 409

interface در جاوا

برای دانلود ویدئو روی دکمه دانلود کلیک کنید

مفهوم interface یک نوع داده شبیه به کلاس هست که تمامی متدهای داخل اون از جنس abstract می باشد. interface حکم یک نقشه را برای کلاس ما دارد . یعنی اگر آن را به کلاسی بدهیم آن کلاس باید مو به مو رفتار interface را پیاده سازی کند.

یک کلاس می تواند یک interface را پیاده سازی یا implements کند :

در پیاده سازی یک interface باید تمامی متدهای انتزاعی داخل interface رو تعریف کنید(تمامی متدهای interface انتزاعی هستند).

class ⇒ implements ⇒ interface

در ارث بری از از کلاس از جنس abstract باید تمامی متدهای انتزاعی رو تعریف کنید.(فقط متدهای انتزاعی)

class ⇒ extends ⇒ abstract

تعریف یک interface

interface Animal :

نکته : interface شبیه به کلاس است اما کلاس نیست ، لذا به تعریف کلمه کلیدی class نیاز نیست.

نکته : تمامی متدهای درون یک interface از نوع انتزاعی هستند لذا نیازی به نوشتن کلمه کلیدی abstract نیست.

پیاده سازی interface توسط یک کلاس ساده

class cat :

نکته : چون کلاس ساده نمی تواند متد انتزاعی داشته باشد لذا باید تمامی متدهای انتزاعی interface پیاده سازی شده را تعریف کند.

پیاده سازی interface توسط یک کلاس از جنس abstract

abstract class dog :

نکته : چون کلاس abstract خود به تنهایی می تواند متد انتزاعی داشته باشد لذا لازم به تعریف تمامی متدهای انتزاعی interface نیست.

نکته : کلاسی که از کلاس dog ارث بری کنه باید متد تعریف نشده در interface پدربزرگش یعنی Animal رو تعریف کنه.

جمع بندی :

  • یک کلاس ساده تنها می تونه متدهای معمولی (با بدنه) رو داشته باشه.
  • یک کلاس از جنس abstract هم میتونه متد abstract (بدون بدنه) داشته باشه هم متد معمولی (با بدنه)
  • یک interface تنها میتونه متد abstract (بدون بدنه) داشته باشه.

پیاده سازی چندگانه (multi implements) در جاوا

یک کلاس قادر است که یک یا چند interface رو پیاده سازی کنه ، فقط باید در نظر داشت که تمامی متدهای تمامی interface هارو باید تعریف کنه.

مثلا قورباغه رو در نظر بگیرید که اعمال یک خرگوش و ماهی رو پیاده سازی می کنه. قورباغه دوزیست است.

کلاس rabbit :

کلاس fish :

کلاس forg :

ارث بری چندگانه interface ها از هم

interface ها می تونن از یک یا چند interface دیگه ارث بری کنند. پس قدرت interface ها در ارث بری بیشتر از کلاس های معمولیه.

کلاس sport :

کلاس evant :

کلاس footbal :

نکته : تمامی کلاس های والد و فرزند interface هستند و تمامی متدهای آن ها نیز انتزاعی است.

نکته : کلاسی که کلاس football رو پیاده سازی کنه باید تمامی متدهای کلاس های sport , evant , football رو تعریف کنه.

  • یک کلاس تنها از یک کلاس پدر extends میشه . (1-1)
  • یک interface از یک یا چند interface دیگه میتونه extends بشه (قطعا باید والدش هم interface باشه که تموم متدهاش از نوع انتزاعی باشن).(1-n)
  • یک کلاس می تونه از یک یا چند interface دیگه implements بشه.(1-n)

اشتراک گذاری :

مدرس دوره های جاوا اندروید و پایتون به صورت حضوری و مجازی

2 دیدگاه برای interface در جاوا

  1. استاد بسیار عالی بود به طور کامل تازه یاد گرفتم بعد از کلی اموزش خوب نفهمیده بودم
    ولی شما خیی واضح توضیح میدین متشکرم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *