تبلیغات
میهن وب هاست

آموزش سی شارپ – معرفی overriding

نویسنده : امیر

نظرات : ۰ دیدگاه

بازدید : ۵۲ بازدید

تاریخ : ۱۱ خرداد ۱۳۹۷

در این دوره شما یادگرفتید که با زبان برنامه نویسی سی شارپ چگونه باید برنامه نوشت ولی درباره ی موضوع برنامه نویسی هیچگاه صحبتی نشد، چرا که برنامه نویسی اصولی دارد که هر فرد با یادگیری آنها باید ایده های درونی خودش رو به کد درآورده و اجرا کند؛ پس در هیچ دوره ای به شما شخصی نخواهد گفت با این آموزش این رو بنویسید. ( به غیر از آموزش های پروژه محور )

 

حتما قبل از بررسی معرفی overriding نوشته ی مطالب قبلی این دوره ی آموزشی را با هشتگ #دوره آموزشی_سی_شارپ در سایت ما را مطالعه کنید.

 

Overriding و متدهای Virtual :

Virtual method، متدی است که با کلمه‌ی‌کلیدی virtual در base class تعریف می‌شود. Virtual method به‌شکلی است که می‌توانید آن را در derived class مجدداً تعریف کنید. از این‌رو، هر derived class می‌تواند نسخه‌ی اختصاصی خودش را از virtual method داشته باشد.. هنگامی‌که یک virtual method در derived class مجدداً تعریف می‌شود، باید از override modifier استفاده ‌کنید بنابراین پروسه تعریف مجدد virtual method در derived class را method overriding می‌نامیم. هنگام override کردن یک متد، باید اسم متد، return type و پارامترهای آن را مطابق با virtual method بنویسیم. به مثال زیر توجه کنید:

مثال :

هنگامی‌که از سلسله مراتب ارث‌بری استفاده می‌کنید، اگر یک derived class، یک virtual method را override نکند، به طرف ابتدای زنجیره‌ی ارث‌بری حرکت کنید، اولین override آن متد که دیده شود اجرا خواهد شد. به مثال زیر توجه کنید:

 

علت استفاده از متدهای override شده :

متدهای override شده به سی‌شارپ اجازه می‌دهند تا از ویژگی runtime polymorphism بهره ببرد. Polymorphism توانایی ساخت متدهایی است که با توجه به موقعیت، می‌توانند اجرای متفاوتی داشته باشند Polymorphism. به این دلیل برای برنامه‌نویسی شی‌گرا اهمیت دارد که به یک کلاس کلی، اجازه می‌دهد متدهایی داشته باشد که در همه‌ی کلاس‌های مشتق شده از آن کلاس، مشترک هستند. این درحالی است که به derived classها این اجازه را می‌دهد تا هرطور که می‌خواهند آن متدها را اجرا کنند و درصورت نیاز، نحوه‌ی اجرای آن متدها را تغییر دهند. متدهای override شده، روش دیگری برای اجرای این جنبه از polymorphism که می‌گوید “one interface, multiple methods” هستند.

 

استفاده از کلاس‌های Abstract :

اگریک base class بسازیم که فقط یک فرم کلی را مشخص کرده و آن را با تمام کلاس‌های مشتق شده، به اشتراک بگذارد و اجازه ‌دهد که derived classها بدنه‌ و جزئیات این فرم کلی را تکمیل کنند. این حالت زمانی رخ میدهد که base class نتواند یک اجرای بامعنی برای متد مورد نظر داشته باشد، از این‌رو اجرا را بر عهده‌ی derived class ها می‌گذارد. یا ممکن است متدهایی در base class داشته باشید که derived class ها حتماً باید آن‌ها را اجرا کنند، در چنین شرایطی باید از abstract method استفاده کنید.

فرم کلی abstract method به‌شکل زیر است:

یک متد abstract با abstract modifier ساخته می‌شود. abstract method بدنه ندارد و از این‌رو درون base class اجرا نخواهد شد. derived classها حتماً باید این abstract method را override کنند. یک abstract method به‌صورت اتوماتیک virtual نیز است و در واقع نمی‌توانید از virtual و abstract باهم در یک تعریف استفاده کنید.
همه‌ی derived classها بایستی متد abstract در base class را override کنند (یا اینکه خودشان باید abstract باشند). نکته‌ی دیگر این است که یک abstract class می‌تواند متدهایی داشته باشد که abstract نیستند و derived classها می‌توانند در صورت نیاز آن‌ها را override کنند درحالی که هیچ اجباری در کار نیست.

مثال :

 

 

خب این جلسه هم به پایان رسید باید به این نکته توجه کنید که مباحث بالا در برنامه نویسی تجاری اهمیت فراوانی دارد.

برای استفاده از تمامی جلسات از هشتگ #دوره آموزشی_سی_شارپ در سایت ما استفاده کنید.

منتظر جلسه ی بعدی دوره آموزشی سی شارپ باشید.

با دوستانتان به اشتراک بگذارید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*

code

مطالب زیر را از دست ندهید: