Interface چیست؟

یکشنبه 22 اردیبهشت 1392

Interface چیست؟ <br/> یکی از مفاهیم شی گرایی ، مبحث Interface ها است . مفهمومی که با وجود ساده بودن ، اما کاربردهای فراوانی دارد . در این مختصر می خواهم مفهموم و دلایل کاربردهای Interface ها را بیان کنم .

یکی از مفاهیم شی گرایی ، مبحث Interface  ها است . مفهمومی که با وجود ساده بودن ، اما کاربردهای فراوانی دارد . در این مختصر می خواهم مفهموم و دلایل کاربردهای Interface  ها را بیان کنم .
 
Interface  چیست ؟
Interface را نمی توان کلاس نامید . هر چند در سلسله مباحث کلاسها مورد بررسی قرار می گیرد . اما می توان آن را قانونی  در نظر گرفت که بر روی کلاسها ، اعمال میشود . در واقع Interface قراردادی است . که به موجب این قرار داد ، برخی زیر کلاسهای برنامه ما موظفند از بندهای این قرارداد استفاده کنند . با این تفاوت که ما در Interface فقط کلیات قرار داد را ذکر می کنیم و جزییات را به عهده زیر کلاسها می گذاریم.
 
مهمترین نکته ها در مورد Interface :
 
1-وقتی ما از Interface استفاده می کنیم  زیر کلاسی که از Interface ارث بری می کند ، باید و باید و باید ، تمام متدها و خصوصیات Interface را اعمال کند (override) در غیر اینصورت با پیغام خطا مواجه می شویم.
 
2-یک کلاس فقط می تواند از یک کلاس دیگر ارث بری کند ، اما یک کلا س می تواند از چندین Interface ارث بری کند ( در مورد مفهموم ورراثت چند گانه خواهم نوشت )
 
3-Interface محدوده ای از متدهایی را تعریف می کند که چنانچه کلاسی از آن ارث بری  کند باید تمام آنها را اعمال کند
 
4-تعریف Interface  شبیه تعریف کلاس است با این تفاوت که در Interface بدنه متدها و خصوصیتها نوشته نمی شود و فقط نوع پارامترها ی ارجاعی و بازگشتی مشخص می شود.
 
5-Interface  نمی تواند داده ها را ذخیره کند ، شما نمی توانید برای Interface  فیلد تعریف کنید . شما فقط می توانید یک تعریفی کلی از خصوصیت و متدها را اعلام کنید .
 
6-ما نمی توانیم متغیری از نوع  Interface  تعریف کنیم .
 
7- Interface می تواند از Interface  دیگری ارث بری کند . در این حالت کلاسی که از Interface فرزند ارث بری می کند ، باید تمام خصوصیات و متدهای Interface والد و فرزند را اعمال کند .
 
در زیر یک مثال از Interface می آوریم ، Interface با کلمه Interface تعریف می شود . خوب Interfaceی به صورت زیر تعریف می کنیم :

همانطور که در بالا تعریف کردیم ما Interfaceی به نام مثلا به نام Icol  تعریف می کنیم ، این Interface دارای متد honk  و دارای خصوصیت  funny  است . همانطور که می بینید ، فقط اعلان شده اند و هم متد و هم خصوصیت فاقد بدنه هستند .
حال باید کلاسی تعریف کنیم که Interface بالا را ارث بری کند و متدها و خصوصیت در آن اعمال شوند .

خوب همانطور که می بینید کلاس ما علاوه بر ارث بری از Interface ، متدها و خصوصیتهای آن را با بدنه دوباره تعریف می کند .

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 2k بازدید
  • 1 تشکر

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

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید