اینترفیس (Interface)
اینترفیس در C# یعنی قراردادی برای کلاس ها. مثل قوانین یک بازی که بازیکنان باید رعایت کنند. هر کلاس که اینترفیس را پیاده سازی کند، باید دقیقاً متدهایش را بسازد.
اینترفیس چیست؟
اینترفیس (Interface) مثل یک کلاس انتزاعی کامل است. یعنی فقط تعریف متد و ویژگی دارد ولی بدنه ندارد.
// اینترفیس
interface IAnimal
{
void animalSound();
void run();
}
نکته: معمولاً نام اینترفیس با حرف I شروع می شود تا راحت تشخیص دهیم کلاس نیست.
پیاده سازی (Implement) یک اینترفیس
برای استفاده از متدهای اینترفیس، باید آن را در یک کلاس پیاده سازی کنیم. از علامت : استفاده می کنیم. این شبیه وراثت است، ولی کمی متفاوت.
// تعریف اینترفیس
interface IAnimal
{
void animalSound();
}
// پیاده سازی اینترفیس در کلاس Pig
class Pig : IAnimal
{
public void animalSound()
{
Console.WriteLine("The pig says: wee wee");
}
}
class Program
{
static void Main(string[] args)
{
Pig myPig = new Pig();
myPig.animalSound();
}
}
نکته: لازم نیست از کلمه override استفاده کنی، چون اینجا ارث بری نیست بلکه پیاده سازی است.
ویژگی های مهم اینترفیس
- نمی توان از اینترفیس شیء ساخت.
- متدهایش بدنه ندارند؛ بدنه را کلاس می نویسد.
- تمام اعضا به صورت پیش فرض
publicوabstractهستند. - نمی تواند فیلد یا سازنده (constructor) داشته باشد.
چرا از اینترفیس استفاده کنیم؟
- امنیت: جزئیات بی اهمیت را پنهان می کند.
- کد منظم تر می شود.
- یک کلاس می تواند چند اینترفیس را همزمان پیاده سازی کند (برخلاف وراثت).
نکته: برای یادگیری وراثت، بخش وراثت را هم ببین. همچنین، بخش چند اینترفیس را بخوان تا یاد بگیری چطور چند اینترفیس را با هم استفاده کنی.
جمع بندی سریع
- اینترفیس فقط تعریف متد دارد، نه بدنه.
- کلاس باید متدهایش را خودش بسازد.
- با
:پیاده سازی می شود. - اسم اینترفیس معمولاً با «I» شروع می شود.
- برای چند رفتار مختلف در یک کلاس عالی است.