با مطالعهی فصل ۹ و ۱۰ با مفهوم شیءگرایی و همچنین کلاسها آشنا شدید. در انتهای فصل ۹ اشارهای به ارثبری داشتیم و یک فضای کلی از آن را در اختیار شما قرار دادیم. حال در این بخش میخواهیم با جزئیات بیشتری این مفهوم را بررسی کرده و مثالهای کاربردی ارائه دهیم. با ما همراه باشید.
مقدمه
همانطور که قبلا هم ذکر کردیم ارثبری به عنوان مهمترین مفهوم در برنامهنویسی شیءگرا مطرح میشود. با استفاده از آن میتوان کلاسی را تعریف کرد که برخی از خصوصیات و رفتارهای کلاسهای دیگر را به ارث ببرد. این کار نگهداری و تولید نرمافزار شما را بسیار سادهتر میکند. همچنین باعث میشود از توابع استفاده کرده و سرعت برنامهنویسی و اجرا پروژه خود را بالا ببرید. اگر کلاس B از کلاس A به ارث ببرد به اصلاح میگویند که کلاس B از کلاس A مشتق شده است.
کلاسهای پایه و مشتق شده
یک کلاس میتواند از یک یا چند کلاس یا واسط نشات گرفته شود. بدین معنی که یک کلاس میتواند متغییرها و متدها را از چندین کلاس یا واسط به ارث ببرد.
در زبان برنامهنویسی #C برای نمایش کلاسهای به ارث برده شده از علامت : (دو نقطه) استفاده میشود. به مثال زیر توجه کنید:
همانطور که ملاحظه میکنید کلاس derived_class از کلاس base_class مشتق شده است. برای روشنتر شدن این موضوع یک کلاس Shape و یک کلاس مشتق شده از آن به نام Rectangle را در نظر بگیرید:
با بررسی این مثال میتوان دریافت که دو متغییر به نام width و height از نوع int بوده و سطح دسترسی آنها protected (یعنی قابل استفاده در کلاسهایی که از آن به ارث بردهاند) است. حال در کلاس دیگری به نام Rectangle با استفاده از علامت دو نقطه (:) کلاس اصلی که از آن ارث برده است را مشخص کرده ایم و اسم این کلاس Shape میباشد. سپس یک تابع درون آن تعریف کرده و محیط مستطیل را محاسبه میکنیم. اگر وارد بخش متد اصلی برنامه یعنی Main برنامه شوید متوجه خواهید شد علیرغم اینکه یک شیء از کلاس Rectangle ساخته شده است، میتوان به سایر متدهای موجود در کلاس اصلی یعنی Shape دسترسی داشت. در نهایت خروجی این مثال به صورت زیر خواهد بود:
مقداردهی اولیه کلاس والد (اصلی)
میتوان کلاس اصلی یا والد را مقداردهی اولیه کرد و یک سازنده برای آن تعریف نمود. در این صورت میتوان به هنگام ارث بری از کلاس بالاتر سازنده آن را نیز ارث برده و به سازنده کلاس فرزند متصل کرد. برای اینکار باید در سازنده فرزند از عبارت base: استفاده کرد. به مثال زیر توجه کنید:
خروجی این مثال به صورت زیر میباشد:
این فصل به اتمام رسید و در نهایت شما با مفهوم وراثت آشنایی کامل پیدا کردید. در فصل بعدی به توضیح مفصلی درباره پلی مورفیسم میپردازیم. با ما همراه باشید.
منبع: روکسو