Interface چیست؟
یکشنبه 22 اردیبهشت 1392Interface چیست؟ <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 ، متدها و خصوصیتهای آن را با بدنه دوباره تعریف می کند .
- C#.net
- 3k بازدید
- 1 تشکر