آموزش پاسکال شی‌گرا

وراثت در پاسکال شی‌گرا

وراثت در پاسکال شی‌گرا

یکی از مهم ترین قابلیت های برنامه نویسی شی‌گرا وراثت است
در حقیقت با استفاده از وارثت میتوانید کلاس ها را به آسانی گسترش دهید

نکـــــته
در برنامه نویسی شی گرا وارثت به این مفهوم است
که شما میتوانید از یک کلاس موجود استفاده کرده
قابلیت هایی را به ان اضافه کنید و کلاس جدیدی را به وجود آورید

توجه داشته باشید که کلاس منشعب شده
نسل (descendent) و به کلاسی که کلاس دیگری از آن منشعب شده است
کلاس پایه (base class) یا جد (ancestor) میگویند

نکـــــته
یک کلاس به طور مستقیم تنها یک جد میتواند داشته باشد
اما میتواند شامل نسل های زیادی به طور مستقیم باشد

فکر میکنم موضوع وراثت بسیار ساده و روشن است
اگر موضوع را درک نکرده اید بهتر است به این شکل به وارثت نگاه کنید
که هر کسی تنها میتواند یک پدر داشته باشد اما میتواند فرزندان متعددی داشته باشد
هم چنین هر فرزند خصوصیاتی را از پدر خود به ارث برده و خصوصیات جدیدی نیز به آن ها می افزاید

شاید این پرسش به ذهن شما خطور کرده باشد که وراثت در برنامه نویسی شی‌گرا چه کاربردی شاید دارد؟

پاسخ این است که وراثت به طور قابل ملاحظه‌ای به شما امکان استفاده مجدد از کدهای نوشته شده را میدهد
به این دلیل که برای ایجاد یک نسل جدید نیازی به نوشتن مجدد کد مربوط به جد نخواهد داشت
برای مثال میتوانید از کلاس TCar که در بخش قبلی به وجود آورده‌ایم برای ایجاد یک کلاس جدید استفاده کنید

type
 TPeykan = class(TCar)
 private
 color : Byte:
 protected
  procedure StopEngine;override;
 public
  procedure SetColor(C : Byte);
  Function GetColor : Byte;
  constructor Crate;
end;

با توجه به اولین خط تعریف فوق کلاس TPeykan از کلاس TCar منشعب میشود
لذا تمامی موارد جد خود را به وارث خواهد برد
در حقیقت اگر بعد از کلمه کلیدی Class نام یک کلاس را درون پرانتزهای باز و بسته قرار دهید
به کامپایلر می گویید که میخواهید از وراثت استفاده کنید.

نکـــــته
زمانی که شما یک کلاس را از کلاس دیگری منشعب میکنید
کلاس جدید تمامی قابلیت های کلاس پایه را به ارث برده و هم چنین شما میتوانید
قابلیت های جدیدی را به آن اضافه کنید
شما میتوانید فیلدهای و متدهای جدیدی را به کلاس جدید خود اضافه کنید
اما نمیتواندی مواردی را که از کلاس پایه به ارث برده اید حذف کنید

اگر به تعریف کلاس TPekan نگاهی بیندازید
متوجه خواهید شد که مواردی جدیدی به ان افزوده شده است

[adinserter block="1"]
4.8/5 - (5 امتیاز)

نوشته های مشابه

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

دکمه بازگشت به بالا