تفاوت کلیدی – کلاس در مقابل رابط
برنامه نویسی شی گرا (OOP) یک پارادایم رایج در توسعه نرم افزار است. این کمک می کند تا سناریوهای دنیای واقعی را با استفاده از کلاس ها و اشیاء به برنامه نویسی بیاوریم. کلاس یک طرح اولیه برای ایجاد یک شی است. برنامه نویس می تواند یک کلاس با ویژگی ها و متدها ایجاد کند. دانش آموز و معلم اشیا هستند. ایجاد یک شی به عنوان نمونه شناخته می شود. OOP همچنین از رابط ها استفاده می کند. رابط ها و کلاس ها ممکن است شبیه به هم به نظر برسند، اما تفاوت هایی با هم دارند. این مقاله تفاوت بین کلاس و رابط را مورد بحث قرار می دهد. تفاوت اصلی بین یک کلاس و یک رابط این است که یک کلاس یک نوع مرجع است که یک طرح اولیه برای نمونه سازی یک شی است در حالی که رابط یک نوع مرجع است که نمی تواند برای نمونه سازی یک شی استفاده شود.
کلاس چیست؟
در OOP، همه چیز به عنوان یک شی در نظر گرفته می شود. ایجاد یک شی بدون کلاس امکان پذیر نیست. کلاس یک طرح اولیه برای ایجاد یک شی است. هنگام ساختن خانه، معمار نقشه را ترسیم می کند. طرح شبیه به کلاس است. خانه شبیه به شی است. کلاس طرحی برای ساخت یک شی است. یک شی همان چیزی است که با استفاده از کلاس ایجاد می شود.
کلاس حاوی ویژگی ها و متدها است. یک دانش آموز می تواند دارای ویژگی هایی مانند نام، نمره، شماره فهرست باشد. یک دانش آموز می تواند روش هایی مانند خواندن، راه رفتن، مطالعه داشته باشد. یک کلاس با ویژگی ها و متدهای لازم ایجاد می شود.
سینتکس ایجاد کلاس در بسیاری از زبان های برنامه نویسی به شرح زیر است. با استفاده از کلاس کلمه کلیدی ایجاد شده است.
کلاس_نام {
// خواص
//روشها
}
زبان های برنامه نویسی مانند سی شارپ و جاوا از دستوری مشابه برای ایجاد یک شی با استفاده از یک کلاس پیروی می کنند. فرض کنید نام کلاس Student است.
Student s1=دانشجوی جدید ();
این s1 شی است. کلمه کلیدی "جدید" برای تخصیص حافظه برای ویژگی ها استفاده می شود. یک کلاس همچنین یک سازنده برای مقداردهی اولیه خصوصیات یا متغیرها دارد.
اعضای کلاس مانند ویژگی ها و متدها اصلاح کننده های دسترسی دارند. مشخصکنندههای دسترسی، قابلیت دسترسی و مشاهده آن اعضا را برای کلاسهای دیگر توصیف میکنند. اعضای کلاس می توانند به مشخصه های دسترسی مانند عمومی، خصوصی و محافظت شده دسترسی داشته باشند. اعضای عمومی توسط کلاس های دیگر قابل دسترسی هستند. اعضای خصوصی فقط برای کلاس قابل دسترسی هستند. اعضای محافظت شده در کلاس و زیر کلاس های مربوطه قابل دسترسی هستند.
رابط چیست؟
Abstraction ستونی از برنامه نویسی شی گرا است. این برای پنهان کردن جزئیات پیاده سازی و نمایش عملکرد به کاربر است. انتزاع با استفاده از کلاس ها و رابط های انتزاعی به دست می آید. روش انتزاعی پیاده سازی ندارد. کلاسی که دارای حداقل یک متد انتزاعی باشد، کلاس انتزاعی نامیده می شود.
وقتی دو کلاس انتزاعی وجود دارد، متدهای اعلام شده در آن کلاس ها باید پیاده سازی شوند. یک کلاس جدید برای پیاده سازی آن متدها استفاده می شود. اگر هر دو کلاس روش یکسانی داشتند، ممکن است مشکل ابهام ایجاد کند. بنابراین، زبان های برنامه نویسی مانند جاوا و سی شارپ دارای یک رابط هستند.
اینترفیس ها فقط حاوی اعلان متدها هستند. هیچ روش اجرایی وجود ندارد. همچنین، رابط ها را نمی توان برای ایجاد اشیاء استفاده کرد. آنها برای پشتیبانی از وراثت های متعدد و ایمن سازی کد استفاده می شوند.
سینتکس Interface به شرح زیر است. رابط از کلمه کلیدی "رابط" استفاده کنید.
interface interface_name{
type method1(parameter_list);
type method2(parameter_list);
}
طبق موارد فوق، رابط ها فقط دارای اعلان هستند. هیچ تعریفی وجود ندارد. بنابراین، رابط ها نمی توانند اشیا را نمونه سازی کنند. این فقط یک نمای انتزاعی از آنچه رابط است می دهد.متدهای اعلام شده در اینترفیس می توانند توسط یک یا چند کلاس پیاده سازی شوند. یک کلاس از کلمه کلیدی “Implement” برای پیاده سازی یک رابط استفاده می کند. به مثال زیر که با استفاده از جاوا نوشته شده است مراجعه کنید.
شکل 01: برنامه با استفاده از رابط
طبق برنامه بالا، A و B رابط هستند. واسط A یک اعلان متد دارد که sum() است. واسط B دارای یک اعلان متد sub(). کلاس C هر دو اینترفیس A و B را پیاده سازی می کند. بنابراین کلاس C هر دو متد sum() و sub() را تعریف می کند. پس از ایجاد شی از نوع C، می توان هر دو متد sum() و sub(). را فراخوانی کرد.
متدهای اعلام شده در داخل اینترفیس باید همیشه عمومی باشند زیرا کلاس های پیاده سازی آنها را تعریف می کنند. یک رابط همچنین می تواند از یک رابط دیگر ارث بری کند.
شباهتهای بین کلاس و رابط چیست؟
- هر دو نوع مرجع هستند.
- هر دو به برنامه نویسی شی گرا مربوط می شوند.
تفاوت بین کلاس و رابط چیست؟
کلاس در مقابل رابط |
|
A یک نوع مرجع است که طرحی برای ایجاد یک شی است. | واسط یک نوع مرجع است که نمی توان آن را نمونه کرد. |
نمونهسازی شی | |
یک کلاس برای نمونه سازی یک شی استفاده می شود. | یک رابط را نمی توان نمونه سازی کرد زیرا متدها قادر به انجام هیچ عملی نیستند. |
سازنده | |
یک کلاس حاوی یک سازنده برای مقداردهی اولیه متغیرها است. | اینترفیس حاوی سازنده نیست، زیرا به سختی متغیری برای مقداردهی اولیه وجود دارد. |
کلمه کلیدی | |
A کلاس از کلمه کلیدی "class" استفاده می کند. | یک رابط از کلمه کلیدی "رابط" استفاده می کند. |
Access Specifier | |
اعضای کلاس می توانند خصوصی، عمومی و محافظت شده باشند. | اعضای واسط باید همیشه عمومی باشند زیرا کلاس های پیاده سازی آنها را تعریف می کنند. |
خلاصه - کلاس در مقابل رابط
کلاس ها و رابط ها به طور گسترده در برنامه نویسی شی گرا استفاده می شوند. تفاوت بین کلاس و رابط در این است که یک کلاس یک نوع مرجع است که یک طرح اولیه برای نمونه سازی یک شی است و رابط یک نوع مرجع است که نمی تواند برای نمونه سازی یک شی استفاده شود.یک کلاس می تواند بسیاری از اینترفیس ها را پیاده سازی کند. اما فقط می تواند یک سوپرکلاس را گسترش دهد. در اینترفیس می تواند بسیاری از اینترفیس ها را به ارث ببرد اما پیاده سازی نمی تواند وجود داشته باشد. هر دو اهمیت خود را دارند. برنامه نویس می تواند مطابق با نرم افزار در حال توسعه از آنها استفاده کند.
دانلود کلاس PDF در مقابل رابط
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید تفاوت بین کلاس و رابط