PDA

View Full Version : چند ریختی در #C



SajjadKhati
شنبه 24 بهمن 1394, 20:07 عصر
سلام
آقا مبحث چند ریختی با توضیح ساده رو کجا میتونم بخونم؟ این کسی که آموزشش رو میبینم ، همه چی رو خوب و ساده توضیح میده . چند ریختی رو هم همینطور ولی روی چند ریختی زیاد تمرکز نکرد
این چیزایی که از چند ریختی میگم ، ببینین درسته یا چیزای دیگه ای هم هست؟ :

چندریختی یعنی تابعی در کلاس پدر رو میشه در کلاس فرزند ، تغییر داد که میشه همون از یه تابع ، به چند شکل و ریخت استفاده کرد . با استفاده از کلمه virtual در کلاس پدر میشه به تابع این قابلیت رو اضافه کرد . با استفاده از کلمه override در کلاس فرزند ، میشه تابع پدر رو تغییر داد به دلخواه
یا به عبارتی تابع چند ریختی فقط توی کلاس پدر با کلمه ی virtual تعریف میشه . نه هیچ کلاس دیگه ای و تغییر این تابع فقط توی کلاس فرزند با کلمه ی override انجام میشه نه هیچ کلاس دیگه ای
در کلاس فرزند اگه بخوایم تابع چند ریختی رو تغییر بدیم ، چون به نوعی تابع مجدد تعریف باید بشه و تابع هم فقط در سطح (داخل) کلاس تعریف میشه ، پس برای تغییر تابع چند ریختی یا در واقع باید کلمه ی override را داخل و در سطح کلاس بنویسیم نه در داخل توابع یا متد دیگه و ... و بعدش هم هر جور خواستیم بدنه و خروجی شو تغییر میدیم
چون تابع چند ریختی باید از کلاس فرزند در دسترس باشه تا لود شه ، پس باید سطح دسترسی این نوع تابع در کلاس پدر که تعریف کردیم ، public باشه
برای فراخونی این تابع چند ریختی شده یعنی تغییر داده شده ، که داخل کلاس فرزند تعریف کردیم ، مثل حالت عادی ، با ایجاد شی از کلاس های دیگه ، در دسترسه

--------------

نکته ی دیگه ای هست که فکر کنم باشه یا فقط همینه؟