فهرست سرفصل‌های #C
خانه (HOME) مقدمه (Intro) شروع کار (Get Started) سینتکس (Syntax) خروجی (Output) کامنت ها (Comments) متغیرها (Variables) ثابت ها (Constants) نمایش متغیرها (Display Variables) متغیرهای متعدد (Multiple Variables) شناسه ها (Identifiers) انواع داده (Data Types) تبدیل نوع (Type Casting) ورودی کاربر (User Input) عملگرها (Operators) انتساب (Assignment) مقایسه (Comparison) منطقی (Logical) ریاضی (Math) رشته ها (Strings) اتصال رشته ها (Concatenation) درون گذاری رشته (Interpolation) دسترسی به رشته ها (Access Strings) کاراکترهای ویژه (Special Characters) بولی ها (Booleans) if (If...Else) else (If...Else) else if (If...Else) شکل کوتاه if..else (Short hand if..else) سوئیچ (Switch) حلقه while (While Loop) حلقه for (For Loop) حلقه foreach (Foreach loop) شکستن/ادامه (Break/Continue) آرایه ها (Arrays) حلقه روی آرایه (Loop through an array) مرتب سازی آرایه ها (Sort arrays) آرایه های چندبعدی (Multidimensional arrays) متدها (Methods) پارامترها (Parameters) پارامتر پیش فرض (Default Parameter) مقادیر بازگشتی (Return Values) آرگومان های نام دار (Named Arguments) بارگذاری متد (Method Overloading) شیء گرایی (OOP) کلاس ها/اشیا (Classes/Objects) چند شیء (Multiple Objects) اعضای کلاس (Class Members) سازنده ها (Constructors) قیدهای دسترسی (Access Modifiers) ویژگی ها (Properties) وراثت (Inheritance) چندریختی (Polymorphism) انتزاع (Abstraction) اینترفیس (Interface) چند اینترفیس (Multiple Interfaces) شمارش ها (Enums) فایل ها (Files) استثناها (Exceptions) افزودن دو عدد (Add Two Numbers) نمونه ها (Examples)
#C

#C — چند اینترفیس (Multiple Interfaces)

آخرین بروزرسانی: 1404/08/05

چند اینترفیس (Multiple Interfaces)

گاهی یک کلاس باید چند رفتار مختلف داشته باشد. مثلاً یک ربات می تواند هم حرف بزند و هم حرکت کند. در C# برای این کار از چند اینترفیس (Multiple Interfaces) استفاده می کنیم.

استفاده از چند اینترفیس

برای پیاده سازی چند اینترفیس، آن ها را با کاما (,) جدا کن. یعنی کلاس باید همه متدهای آن اینترفیس ها را بسازد.

interface IFirstInterface
{
  void myMethod();
}

interface ISecondInterface
{
  void myOtherMethod();
}

// پیاده سازی دو اینترفیس در یک کلاس
class DemoClass : IFirstInterface, ISecondInterface
{
  public void myMethod()
  {
    Console.WriteLine("Some text..");
  }

  public void myOtherMethod()
  {
    Console.WriteLine("Some other text...");
  }
}

class Program
{
  static void Main(string[] args)
  {
    DemoClass myObj = new DemoClass();
    myObj.myMethod();
    myObj.myOtherMethod();
  }
}

مشاهده در ادیتور

چرا چند اینترفیس مفید است؟

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

مثال واقعی

فرض کن گوشی تو هم دوربین دارد، هم پخش موسیقی. اگر هرکدام را یک اینترفیس در نظر بگیری، گوشی باید هر دو را پیاده سازی کند.

نکته های مهم درباره چند اینترفیس

  • یک کلاس می تواند چند اینترفیس را همزمان پیاده کند.
  • باید همه متدهای آن اینترفیس ها ساخته شوند.
  • هیچکدام از اینترفیس ها بدنه متد ندارند.
  • اگر دو اینترفیس متد هم نام داشته باشند، باید مشخص کنی کدام یک را می خواهی.

جمع بندی سریع

  • چند اینترفیس یعنی چند رفتار در یک کلاس.
  • کلاس باید همه متدها را پیاده کند.
  • جایگزین چندوراثتی در C# است.
  • متدهای مشابه باید جداگانه تعریف شوند.
  • کد تمیزتر و منعطف تر می شود.

نکته: بخش اینترفیس را هم ببین تا بهتر متوجه تفاوتش با کلاس های انتزاعی شوی. همچنین می توانی در Enums یاد بگیری چطور مقادیر ثابت را با کد ترکیب کنی.