چندریختی (برنامهنویسی): تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
Scholar.me (بحث | مشارکتها) |
Scholar.me (بحث | مشارکتها) بدون خلاصۀ ویرایش |
||
خط ۴:
یکی از ویژگیهای کلیدی در کلاسهای مشتقشده این است که یک اشارهگر به یک کلاس مشتقشده، از نظر نوع دادهای با اشارهگر به کلاس اصلی آن سازگار است. '''چندریختی''' یا پلیمورفیسم، هنر بهرهبرداری از این ویژگی ساده، اما قدرتمند و کاربردی است که متدلوژی شیگرایی را به حد کامل تواناییاش میرساند.<ref>{{یادکرد کتاب|عنوان=برنامه سازی پیشرفته با ++C|نام خانوادگی=دکتر بابک بشری راد|نام=|ناشر=ناقوس|سال=1394|شابک=978-964-377-746-3|مکان=تهران|صفحات=143}}</ref>
مفهوم چندریختی ویژگی است که به رابطها امکان میدهد تا برای گروهی از عملیاتها مورد استفاده قرار گیرند. در این مقاله مفهوم چندریختی از طریق دو مفهوم متدهای Override (توابع مجازی) و
روش به کار برده شده در این تحقیق از طریق مطالعه منابعی از جمله کتب مرتبط با برنامهنویسی، راهنمای برنامههای شیء گرا و اجرای برنامههایی با ماهیت چندریختی میباشد.
با توجه به مطالب ارائه شده در این مقاله میتوان گفت که مفهوم چندریختی یکی از سه اصول مهم در برنامهنویسی شیء گرا میباشد. درنتیجه مفاهیم نهان سازی و وراثت به همراه مفهوم چندریختی سه پایهٔ اصلی برنامهنویسی شی ء گرا را تشکیل میدهند.
کلمات کلیدی: چندریختی،
:چندریختی به معنای چندین شکل از یک متد است. مفهوم چندریختی اغلب به وسیلهٔ عبارت «یک رابط، چند متد» بیان میشود. این بدین معناست که این امکان وجود دارد که یک رابط عمومی برای گروهی از فعالیتهای مرتبط به هم طراحی شود.
در برنامههای شیء گرا مانند جاوا، این امکان فراهم شده تا دو و یا بیش از دو متد همنام در یک کلاس تعریف نمود،
مشروط بر اینکه تعریف پارامترهای آن متفاوت باشد. در این موارد متدها
از چندریختی به منظور تعیین انواع مختلف متدهای پویا، در زمان اجرا استفاده میشود؛ که این یکی از قدرتمندترین امکاناتی است که چندریختی به وجود میآورد.
:چنانچه نام و امضای متدی از یک زیر کلاس (در ساختار سلسله مراتبی کلاسها) با نام و نوع امضای متدی از فوق کلاسش یکسان باشد، در آن صورت متد موجود در زیر کلاس، متد موجود در فوق کلاسش را Override میکند.
مفاهیم
در این مقاله پس از بررسی اجمالی مفهوم چندریختی در بخش اول، در بخش دوم مفهوم
== مفهوم چندریختی ==
خط ۳۰:
از طریق کاربرد اصول شیءگرا، بخشهای گوناگون یک برنامهٔ پیچیده را میتوان ترکیب نمود و موجودیتی یکپارچه، با استحکام و قابل مدیریت تشکیل داد.
==
=== تعریف و چگونگی انجام آن ===
:در [[زبانهای برنامهنویسی]] شیءگرا مانند جاوا میتوانیم دو ویا بیشتر از دو متد همنام را در یک کلاس تعریف نماییم (با شرط آنکه پارمترهای آن را متفاوت تعریف نماییم). به این فرایند
:وقتی متد
:اگرچه نوع مقادیری که این متدها برمیگردانند ممکن است متفاوت باشد، اما نوع مقادیر به تنهایی برای تمایز بین آنها کفایت نمیکند. وقتی که جاوا با عبارت فراخوانی این گونه متدها مواجه میشود، متدی را اجرا میکند که پارامترهای آن با آرگومانهای مورد استفاده در عبارت فراخوانی مطابقت داشته باشد.
:وقتی متدی را
===
:همانطور که میدانیم، هر کلاسی که در جاوا ایجاد میکنیم، میتواند دارای سازنده باشد. اگر سازندهای برای کلاسی ننویسیم، جاوا یک سازنده برای آن کلاس مینویسد که از طریق آن میتوان اشیای آن کلاس را ایجاد کرد. این کلاس به فیلدهای اشیاء نیز مقادیر اولیه مناسبی میدهد. یعنی، به عنوان مثال فیلدهای عددی را برابر صفر و فیلدهای رشتهای را برابر تهی قرار میدهد.
:متدهای سازنده را نیز میتوان همچون متدهای معمولی
====مثالی از سازنده های سربار شده====
در ادامه مثالی از سازنده های سربار شده نمایش داده شده است. در این مثال کلاس Book طراحی شده است که دارای سه سازنده با امضاهای متفاوت می باشد. <source lang="java">public class Book{
|