در مقالات گذشته در مورد مفهوم شی گرایی و اینکه شی گرایی چیست صحبت نمودیم ، سپس بیان کردیم که سی شارپ یک زبان شی گراست و نحوه کلاس نویسی و ایجاد یک شیء در سی شارپ و ساخت چندین نمونه (instance) از یک کلاس را بیان کردیم.

امروز می خوام در مورد ارث بری در کلاس ها و اشیاء با همدیگه صحبت کنیم.
هر شیء (کلاس) در سی شارپ می تواند خصوصیات یا رفتاری را از یک شیء (کلاس) دیگر ارث ببرد، به این عمل ارث بری پدر و فرزندی می گویند.
فرض کنید که ما یک کلاس با نام Person برای انسانها و اشخاص ایجاد کرده ایم که دارای خصوصیات زیر است:
نام - نام خانوادگی - تاریخ تولد - شماره شناسنامه - کد ملی - قد - وزن


حال آنکه برای ایجاد یک کلاس با نام Employee برای کارمندان شرکتمان چه باید بکنیم ؟
حال آنکه می دانیم همه کارمندان ما خصوصیاتی مانند نام و نام خانوادگی و ..... را دارا می باشند.

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


ملاحظه می نمایید که بنده در جلوی نام کلاس یک : گذاشته ام و سپس اسم کلاسی که می خواهم ارث بری نمایم را نوشته ام.

اگر به کانستراکتور کامل توجه نمایید ، متوجه می شوید که کلاس Employee من تمامی خصوصیات کلاس Person را داراست و بنابراین من در کانستراکتورم همه این خصوصیات را نیز در نظر گرفته ام.

حال آنکه در بخش کانستراکتور نیز از ارث بری کانستراکتور ها استفاده نموده ام و بوسیله دستور : base مشخص کرده ام که برای مقادیر مشخص شده می بایست طبق کانستراکتور کلاس پدر عمل شود و بدین ترتیب دیگر کدهای داخل کانستراکتور Person را در کانستراکتور Employee ننوشته ام.

ارث بری کانستراکتورها نیز یکی از خواص خیلی خوب ارث بری در سی شارپ است که از نوشتن کدهای تکراری در بخش کانستراکتور کلاس ها جلوگیری می کند.

بنابراین اگر من یک نمونه از کلاس Employee بسازم ، نمونه من دارای تمامی خصوصیات کلاس Person نیز می باشد:


ملاحظه می نمایید که نمونه ای که من ساخته ام خصوصیات Name و Family را از کلاس Person به ارث برده است.

نکته مهم دیگری که در ارث بری داریم ، این است که اگر کلاس C از کلاس B ارث ببرد (C:B) و کلاس B از کلاس A ارث ببرد (B:A) ، می توانیم بگوییم که کلاس C از A  نیز ارث برده است (C:A).

این مورد مثل ریاضیات است که می گفتیم: اگر A = B = C باشد ، درنتیجه A= C نیز هست.

در مقاله آموزشی بعدی ، کاربردهای عملی ارث بری در طراحی وب با ASP.Net را آموزش خواهم داد تا به زیبایی های شی گرایی و ارث بری بیشتر آشنا شوید و دنیای زیبای شی گرایی را بیشتر درک نمایید.

نوشته شده در تاریخ جمعه 20 تیر 1393    | توسط: ح.م    | طبقه بندی: آموزش سی شارپ،     | نظرات()