یکی از مفاهیم بسیار مهم در برنامه نویسی شیء گرا، ارث بری یا inheritance است که به آن وراثت هم می گویند.
برای داشتن برنامه های کاربردی و تمیز و قابل توسعه نیاز است که این مفهوم را یاد بگیرید و از آن استفاده کنید.
مفهوم مهم این مقاله، وراثت یا Inheritance نام دارد. برای این که مفهوم اصلی وراثت در برنامه نویسی را متوجه شوید، این تعریف از دانشنامه ویکی پدیا را مطالعه کنید:
وراثت در برنامهنویسی شبیه وراثت بیولوژیکی است که در آن فرزندان صفاتی را از والدین به ارث میبرند. در برنامه نویسی شیء گرا میتوان با وراثت از کلاس موجود کلاسی را ایجاد کرد که دادهها و متدهای کلاس قبلی را به ارث ببرد. برای فرزند یک کلاس میتوان توابع و متغیرهای جدید تعریف کرد یا توابع مربوط به والد را دوبارهنویسی (override) نمود.
در ارث بری در زبان سی پلاس پلاس ما با سه نوع متفاوت با نام های عمومی یا public، خصوصی یا private و محافظت شده یا protected در ارتباط هستیم.
اما در این مقاله می خواهیم بدانیم که مفهوم هر کدام چیست؟
در این تصویر نیز کلاس پایه حیوان داریم که کلاس های دیگر با نام های Cow و Cat و Dog از آن ارث بری می کنند.
public و یا عمومی بودن به چه معناست؟
متد ها و ویژگی هایی که در مفهوم وراثت به عنوان پابلیک معرفی می شوند ( قبل از آن ها عبارت public به همراه : می آید) قابل دسترسی در کلاس های خارجی نیز هستند. اعضای public در کلاس پایه در هر جایی که یک شی از کلاس پایه یا کلاس های مشتق آن وجود دارد قابل دسترسی است.
private چیست؟
اگر شما در وراثت عضوی از کلاس را به عنوان private یا خصوصی تعریف کنید، دیگر در هیچ کلاس دیگری قابل دسترسی و استفاده نیست. این عضو فقط داخل همین کلاس قابل دسترسی و استفاده است و در امن ترین حالت ممکن قرار دارد. به عنوان مثال اگر شما متد sum در کلاس A از نوع خصوصی قرار دهید، دیگر پس از ساخت یک شی از کلاس B به آن دسترسی نخواهید داشت.
protected چیست؟
می توانیم بگوییم protected در ارث بری مفهومی ما بین publicو private است. به این معنی که متدها و اعضای با این ویژگی فقط در همان کلاس و یا کلاس های فرزند آن قابل دسترسی هستند.