شی گرایی در سی شارپ

آموزش کلاس Interface در سی شارپ

کلاس ها یکی از مهمترین مباحث در امر برنامه نویسی با زبان های شی گرایی هستند. استفادۀ درست از کلاس ها باعثِ خلق یک نرم افزار استاندارد خواهد شد. یکی از کلاس های مهم کلاس Interface در سی شارپ است. اینکه این کلاس چه وِیژگی هایی داشته و چه تفاوت هایی با سایرکلاس ها دارد، در ادامه مبحث آن را فراخواهید گرفت.

کلاس Interface در سی شارپ چیست؟

کلاس اینترفیس در Csharp کلاسی است که به عنوان یک رابط عمل می کند. متدهای تعریف شده در آن عملاً بدون بدنه هستند. یعنی زمانی از این کلاس استفاده می کنیم که می دانیم متدهای یک کلاس بدنۀ اولیه ندارند.

برای تعریف کلاس اینترفیس در سی شارپ باید از کلمه کلیدی interface بجای class استفاده می کنیم. بعد از کلمۀ کلیدی، نام کلاس را باید مشخص کنیم.

یک کلاس اینترفیس مانند یک قرارداد است. که این قرارداد بین یک یا چند انسان بسته می شود و آنها را مجبور می کند طبق آن قرارداد عمل کنند. کسانی که اینترفیس را پیاده سازی می کنند باید عملکردهای اعلام شده در اینترفیس را تعریف کنند. در C # ، یک کلاس یا یک ساختار می تواند یک یا چند اینترفیس را پیاده سازی کند.

اینترفیسِ IPen زیر را در نظر بگیرید که برخی عملکردهای اساسی قلم را اعلام می کند.

نکته ی قابل توجه دیگر در کلاس interface این است که تعریف سطوح دسترسی برای پراپرتی ها و متدهای این کلاس ها امکان پذیر نیست. همه آنها اعضاء آنها بطور پیش فرض سطح دسترسی public دارند.

برای مثال اینترفیس زیر با ساختار نامعتبر تعریف شده است:

سینتکس ارث بری یا عبارت بهتر پیاده سازی از اینترفیس ها در سی شارپ :

Syntax: <Class or Struct Name> : <Interface Name>

برای مثال کلاس زیر را در نظر بگیرید که اینترفیسِ IPen را پیاده سازی می کند.

در مثال بالا ، کلاس Cello اینترفیس IPen را پیاده سازی می کند. تمام اعضای اینترفیسِ IPen را با سطح دسترسی عمومی تعریف می کند. با این حال ، سایر اعضا غیر اینترفیسِ کلاس می توانند سطح دسترسی داشته باشند ، به عنوان مثال. isOpen یک عضو خصوصی از کلاس Cello است.

نکته :

تمام اعضای interface باید با سطح دسترسی عمومی در یک کلاس یا ساختار پیاده سازی شوند. اگر یکی از اعضاء غیر از اصلاح کننده دسترسی عمومی اعلام کرد ، C # خطای زمان کامپایل را خواهد داد.

برچسب ها

حسین درویشی

برنامه نویس سی شارپ، جاوا و لاراول پی اچ پی ، علاقه مند به حوزه هوش مصنوعی و طراحی الگوریتم.

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

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

Enter Captcha Here : *

Reload Image

دکمه بازگشت به بالا
بستن
بستن