مفهوم Interface در جاوا چیست؟

مفهوم Interface در جاوا چیست؟

Interface یک کلاس کاملا Abstract میباشد، درباره abstraction قبلا بحث کردیم که یک مفهوم کلی است و ارتباطی به یک Object خاص ندارد. انترفیس هم عین مفهموم را دارا میباشد. انترفیس کلاسی است که تمام میتودهای آن Abstract میباشد، سازنده‌ی(Constructor) و مشخصه‌ی هم ندارد ولی استثنا اگر ضرورت شود میتواند مشخصه داشته باشد ولی متغیری که معرفی میشود Constant،final و static میباشد و Override نمی شود. و هرگاه بخواهیم Re initialize کنیم Error بوجود می آید و اجازه نمیدهد. یک کلاس را توسط کلمه کلیدی interface ،انترفیس معرفی کرده میتوانیم ویا روی package پروجیکت رایت کلیک کرده واز روی گزینه new، java interface را انتخاب کرده و کلاس انترفیس را بوجود بیارید.

نکات مهم در رابطه با Interface:

هیچگاه نمی توان object کلاس انترفیس را ساخت اما میتوان یک نمونه از کلاس child آنرا ایجاد کرد

تمام میتودهای کلاس انترفیس بدنه(body) ندارد یعنی از نوع  abstract میباشد و نمیتوان میتودی را در این اینجا معرفی کرد که ابسترکت نباشد، ضرور نیست در کلاس انترفیس کلمه abstract را برای میتودها بکار ببریم چون در حالت Default(پیش فرض)”public”و” abstract” میباشد، و همچنان فیبلدهای(property) کلاس انترفس فاینل و  static  میباشد یعنی نمیتوان قیمت های این متغیر ها را Override کرد.

وراثت در interface !

اصل وراثت در اینجا خیلی مهم میباشد چون بین Interface class وکلاس های معمولی رابطه‌ی برقرار می شود واین رابطه توسط کلمه کلیدی Implements وبوجود می آید و کلاس های معمولی از کلاس انترفیس ارث میبرد، در این حالت حداقل یک کلاس واقعی(Concrete class) باید وجود داشته که از کلاس انترفیس ارث ببرد و تمام میتودهای آنرا Override کند، یک کلاس میتواند از چندین انترفیس ارث ببرد.

در مثال بالا میبینید که کلاس computer از دو کلاس انترفیس Device,companyproduct ارث برده و تمام میتود های هر دو کلاس را Override کرده است.

یک انترفیس میتواند از هرچند انترفیس که خواسته باشد میتواند ارث ببرد و رابطه بین انترفیس ها توسط کلمه کلیدی extends برقرار می شود و دربین انترفیس هایکه از آن ارث برده شده کامه(،) میگذاریم و از یکدیگر جدا میکنیم.

 

برای مطالب بیشتر با رجوع همراه باشید!

مرتضی فرحتیار

پست‌های مرتبط
دیدگاهتان را بنویسید:
کد امنیتی در تصویر کلیک کنید برای به روز رسانی تصویر امنیتی.