• توجه: در صورتی که از کاربران قدیمی ایران انجمن هستید و امکان ورود به سایت را ندارید، میتوانید با آیدی altin_admin@ در تلگرام تماس حاصل نمایید.

ارث بری کلاسها ( مشتق کردن کلاسی از کلاس دیگر )

Reza

متخصص بخش اسکریپت
ارث بری همونطور که از اسمش کاملا پيداست همانند قانون ارث بردن در موجودات زنده عمل می کند , يعنی همانند طبيعت يک کلاس به عنوان کلاس پدر (مادر) فرض می شود و يک کلاس به عنوان فرزند از اين کلاس يک سری خصوصيات و قابليتها را به ارث می برد (فرزند نیز دارای بعضی امکانات پدر می شود . البته میزان آن بستگی به خواست ما دارد که توضیح خواهم داد )

کلاس پدر را کلاس پایه گویند
Base Class .

ارث بری را مشتق کردن نیز می گویند .



+++++++++++++++++++++++++++++++++


نحوه مشتق کردن یک کلاس از کلاس دیگر :


فرض می کنیم کلاسی با نام
A وجود دارد :

} class B :(type) A
;
int a,d
:
public
;(
void Rotate (void
}


نوشته بالا يعنی کلاس B از کلاس A با دسترسی نوع (type) که توضيح خواهم داد که نوع دسترسی ۳ دسته است مشتق شده یا خصوصیات و قابلیتهای آن را به ارث برده است .

۳ نوع دسترسی برای مشتق کردن وجود دارد که عبارتند از :

۱- public
۲- protected
۳- private
يعنی يکی از سه کلمه بالا به جای (
type ) نوشته خواهد شد.


هر کدام از اين انواع دسترسی توضيحات خاص خود را دارد که عبارتند از :



۱- public :

يعنی تمام خواص عمومی و خصوصی کلاس پايه را به همان شکل به ارث می برد . بدين شکل که موارد
public در کلاس مبنا (پايه) برای اين کلاس جديد نيز وجود دارد و برای اين نيز public خواهد بود . و تمام خواص protetted و private نيز به همين شکل می باشد که در کلاس جديد نیز هر کدام protected و private خواهند بود .

نکته مهم : در این نوع دسترسی توابع عضو کلاس جدید اجازه دسترسی به خواص
protected کلاس مبنا را دارند اما به خواص private خیر !! دسترسی ندارند .


۲- protected :

در این نوع دسترسی , کلاس جدید خواص کلاس مبنا را به این شکل به ارث می برد که تنها توابع عضو کلاس جدید به فقط خواص
public و protected کلاس مبنا دسترسی دارند و به خواص private دسترسی ندارند .


۳- private :

این نوع دسترسی یعنی نه شئی از کلاس جدید و نه تابع عضو کلاس جدید به هیچ چیز از کلاس مبنا دسترسی ندارند !! ( عملا یعنی این نوع دسترسی یعنی اصلا مشتق نکنیم سنگین تریم!!! )



نکته بسیار مهم :


ارث بری میتواند به گونه ای باشد که یک کلاس از تعداد بیش از
۱ کلاس ارث ببرد ( مشتق شود ) . مثلا :


}class B: public A , public C , protected D , public E , private F
.
.
.
.
}


+++++++++++++++++++++++++++++++++++++++++++++

تا اينجا ارث بری تقريبا مطرح شد و موارد بعدی که بايد توضيح بدم شديدا با ارث بری رابطه مستقيم دارند . مثل توابع مجازی
virtual که در جلسات بعدی مطرح خواهم کرد
 
بالا