تبليغات
آرشيو موضوعي
لینک به ما
با قرار دادن این بنر در سایت خود از ما حمایت کنید

و یا به صورت متن
لينك دوستان
اطلاعات
تعداد مطالب : 277
ايجاد صفحه : 1.64 ثانيه
تاسيس : 28/03/85
به روز شده : ۲۴ /۵ /۱۳۸۷
آمار سايت
تعداد افراد آنلاین : 402
بازديد امروز : 42298
بازديد ديروز : 66805
بازديد كل : 20174007
امكانات
  افزودن به علاقه منديها   ارسال ايميل   RSS 2.0   آمار وب سايت
ارسال براي دوستان
لینک این مطلب را برای دوست خود ارسال کنید.
ايميل گيرنده:

ايميل فرستنده:

پيام شما (اختياري):

powered by Google
" اتلاف وقت، گران‌ترين هزينه‌هاست "

لینکدونی آسان دانلود : مطالب جالب و خواندنی از سراسر وب

:: تصاویری منتشر نشده از داخل چاه زمزم (742)
:: گذاشتن گدجت یاهو مسنجر در جیمیل (144)
:: پل‌سازی به سبک چینی! (280)
:: تازه های موبایل در هفته ای که گذشت (یکم آذر 1387) (202)
:: نصف جهان در دو روز! (204)
:: امکانات جدید گوگل برای جستجو: تغییر رتبه ی جستجوها (95)
:: گوگل با SearchWiki، جستجو را شخصی‌تر می‌کند (93)
:: :: با كمترين هزينه خودتان سايت بسازيد (419)
:: :: پربينده ومحبوب ترين سريال روز (411)
:: داده‌کاوشی و سیستم پیش‌اخطار گوگل (1450)
:: نخستین عمل پیوند با استفاده از عضو ساخته شده از سلول‌های بنیادی (585)
:: گزارش تصویری از عمل سزارين با هيپنوتيزم (1115)
:: سایت تخصصی ماهیگیری ورزشی (1661)
:: رستوارانی به شکل بیمارستان (2208)
:: تصاویری خنده دار از جرج بوش (2860)
:: چطور از شر رمز BIOS خلاص شویم؟ (2426)
:: جدیدترین تصاویر از اخراجی ها دو (2719)
:: بی ام و سری هفت از نوعی کاملا منحصر به فرد (2023)
:: آرشیو عکس دو میلیون قطعه‌ای مجله لایف (1941)
:: كارگاه صابون سازي در شهر مراغه (1760)
» ادامه - آرشيو لينکدوني ...                                                                   » دريافت كد لينكدوني
Nov 23 , 2008
يكشنبه 3 آذر 87
مديريت وب سايتمدير تبليغات  عصرخوش؛ خسته‌ نباشيد
موضوع : #C  تعداد بازديد : 462

پلي مرفيسم (Polymorphism)


يكي ديگر از مفاهيم اوليه ي شيء گرايي پلي مرفيسم ( چند ريختي ) مي باشد. پلي مرفيسم به معناي توانايي استفاده كردن از فرم هاي مختلف يك نوع است بدون توجه به جزئيات آن .
براي مثال هنگاميكه سيگنال تلفني شما فرستاده مي شود ، از نوع تلفني كه در انتهاي خط موجود است خبري ندارد. تلفن انتهاي خط ، مي خواهد يكي از تلفن هاي عهد عتيق باشد و يا تلفني با آخرين امكانات روز .
شركت مخابرات (!) تنها از نوع پايه اي به نام phone خبر دارد و فرض مي كند كه هر instance از اين نوع مي داند كه چگونه صداي زنگ تلفن شما را به صدا در آورد. بنابراين شركت مخابرات از تلفن شما به صورت پلي مرف استفاده مي كند.
در عمل پلي مرفيسم هنگامي مفيد خواهد بود كه بخواهيم گروهي از اشياء را به يك آرايه نسبت دهيم و سپس متدهاي هر يك را فراخواني كنيم. الزاما اين اشياء از يك نوع نخواهند بود.


نحوه ي ايجاد متدهاي پلي مرفيك :
براي ايجاد متدي كه نياز است تا پلي مرفيسم را پشتيباني نمايد ، تنها كافي است آنرا از نوع virtual در كلاس پايه تعريف كنيم. مثال :
فرض كنيد تابع DrawWindow در كلاس Window تعريف شده است. براي ايجاد قابليت پلي مرفيسم در آن به صورت زير عمل مي شود :


public virtual void DrawWindow( )


در اين حالت هر كلاسي كه از Window مشتق شود ، مجاز است نگارش خاص خودش را از DrawWindow ارائه كند. در اين صورت در كلاسي كه از كلاس پايه ي ما ارث مي برد ، تنها كافي است كه كلمه ي كليدي override را قبل از نام تابع مذكور ذكر نماييم.


يك مثال كامل :


using System;


public class DrawingObject
{
public virtual void Draw()
{
Console.WriteLine("I'm just a generic drawing object.");
}
}
public class Line : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Line.");
}
}


public class Circle : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Circle.");
}
}


public class Square : DrawingObject
{
public override void Draw()
{
Console.WriteLine("I'm a Square.");
}
}
public class DrawDemo
{
public static int Main(string[] args)
{
DrawingObject[] dObj = new DrawingObject[4];


dObj[0] = new Line();
dObj[1] = new Circle();
dObj[2] = new Square();
dObj[3] = new DrawingObject();


foreach (DrawingObject drawObj in dObj)
{
drawObj.Draw();
}


return 0;
}
}

كلاس DrawingObject ، كلاسي پايه براي تمام كد ما كه از آن به ارث مي برد ، مي باشد. متد Draw در آن با كلمه ي كليدي virtual معرفي شده است. يعني تمام كلاس هاي فرزند اين كلاس والد مي توانند اين متد را override كنند ( تحريف كردن و يا تحت الشعاع قرار دادن هم ترجمه شده است! ).
در ادامه سه كلاس تعريف شده اند كه تمامي آنها از كلاس مبنا ارث مي برند و تابع Draw را تحريف كرده اند (!). با استفاده از كلمه ي كليدي override مي توان تابع مجازي كلاس مبنا را با تعريفي جديد در زمان اجراي برنامه ارائه داد. تحريف شدن تنها زماني رخ مي دهد كه كلاس ، توسط ريفرنس كلاس مبنا مورد ارجاع واقع شده باشد.
و در متد Main برنامه از اين كلاس ها در عمل استفاده گرديده است. در متد Main ، آرايه اي از نوع DrawingObject تعريف و مقدار دهي اوليه شده است تا بتواند 4 شيء از نوع اين كلاس را در خودش ذخيره كند.
بدليل رابطه ي ارث بري موجود مي توان آرايه ي dObj را با نوع هايي از كلاس هاي Line ، Circle و Square مقدار دهي كرد (همانند كدهاي بعدي متد Main ) . اگر ارث بري در اينجا وجود نمي داشت مي بايست به ازاي هر كلاس يك آرايه تعريف مي شد.
سپس از حلقه ي زيباي foreach براي حركت در بين اعضاي اين آرايه استفاده گرديده است. در اينجا هر شيء متد خاص خودش را در مورد Draw فراخواني مي كند و نتيجه را روي صفحه نمايش خواهد داد.
خروجي نهايي به صورت زير خواهد بود :


Output:
I'm a Line.
I'm a Circle.
I'm a Square.
I'm just a generic drawing object.

نويسنده : مهرشاد تاريخ : چهارشنبه ۸ اسفندماه ۱۳۸۶ ساعت : ۸:۵۴:۴۵ صبح | نظرات | لينك خراب
مطالب مرتبط
نرم افزار - موبايل - كاريكاتور - آموزش - اخبار آي تي - فيلم -  لينكدوني -  تبليغات -  ارسال مطلب

Statistics | Atom | RSS 2.0 | RSD | E-Mail | Advertise
Copyright © 2005-2008 AsanDownload™ Design: Mahdi Hosting : Poshtiban
تمامي حقوق مطالب، تصاوير و طرح قالب براي آسان دانلود محفوظ است، نقل و استفاده از آنها در سايت ها و نشريات تنها با ذکر منبع مجاز ميباشد

تبليغات
مطالب گذشته
ده مطلب تصادفي
آرشيو ماهانه
عضويت و ارسال مطلب
مطالب خود را جهت انتشار در آسان دانلود ارسال نمائید

téléchargement - trasferimento - 下载 - ダウンロード다운로드 - скачать - transferencia directa - μεταφορτώστε - download

دانلود , دانلود نرم افزار , آسان دانلود , دانلود آسان , دانلود , دانولد , داونلود , دانلد , داونلد , کیجن , کرک , سریال , نرم افزار , ویندوز ویستا ، مایکروسافت ویندوز ویستا ، نسخه جدید ویندوز ویستا ، نسخه نهایی ویندوز ویستا ، ویندوز ویستا یولتیمیت ، ویندوز ویستا با کرک ، کرک ویندوز ویستا ، خرید ویندوز ویستا ، فیلم 300 ، دانلود فیلم 300 ، فتوشاپ 10 ، فتوشاپ cs3 ، نورتون 2007 ، دانلود نرم افزار ، دانلود نرم افزار جدید ، دانلود ، آنتی ویروس ، انتی ویروس ، ویندوز ویستا بدون کرک ، ویستا ویندوز ، windows vista , vista activation , windows vista , crack , download , free download , photoshop cs3 10, norton 2007, software , téléchargement, trasferimento, 下载, ダウンロード, 다운로드, скачать, transferencia directa, μεταφορτώστε, nhkg,n


دانلود - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
دانلود نرم افزار - asandownload
موبايل
كاريكاتور
آموزش و مقالات
اخبار آي تي
فيلم
لينكدوني