بهزاد علیزاده
بهزاد علیزاده
خواندن ۳ دقیقه·۴ سال پیش

اصول شی گرایی (۴ از ۴) : وراثت (Inheritance)

گذاشتن اطلاعات مشترک در یک کلاس اصلی (والد) و ارث بری دیگر کلاس ها از آن
گذاشتن اطلاعات مشترک در یک کلاس اصلی (والد) و ارث بری دیگر کلاس ها از آن

در دنیای واقعی

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

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

باز می شه اون ها رو با در نظر گرفتن نژادشون ، به زیرگروه هایی با ویژگی هایی مانند "اندازه" و "رفتار" دسته بندی کرد.

در دنیای برنامه نویسی شی گرا !

گذاشتن اطلاعات مشترک در یک کلاس اصلی (والد) و ارث بری دیگر کلاس ها از آن

همونطور که می دونیم در برنامه نویسی شی گرا همه چیز بر پایه ی شی (Object) یا در واقع نمونه هایی از کلاس (Class) هست.

ما می تونیم اشیا (Objects) رو ، بر اساس ویژگی ها (Characteristics) و توابعشون (Functions) دسته بندی کنیم.

اینجوری کار با اشیا ساده تر و خواناتر شده ، در نتیجه نگهداری و تولید در برنامه نویسی ساده تر خواهد شد.

چون این امکان رو می ده که ما بیایم ویژگی های عمومی و مشترک بین اشیا رو بیرون کشیده و در یک شی اصلی (والد) بذاریم ، جوری که این ویژگی ها توسط آن اشیا (فرزندان) به ارث برده شه.

برای نمونه می تونیم برای یک شرکت ، شی "کارمند" ایجاد کنیم و همه ویژگی های عمومی و مشترک کارمندان آن شرکت رو در اون بذاریم.

بعد شی "مدیر" رو ایجاد کنیم که ویژگی های شی "کارمند" رو به ارث ببره و همچنین ویژگی هایی هم که خاص مدیر اون شرکت هست رو به شی "مدیر" اضافه کنیم.

اینجوری اگر بعدا تغییراتی در شی "کارمند" بدیم ، به طور خودکار برای شی "مدیر" هم در نظر گرفته می شه.

public class Manager : Employee { ... }
کلاس اصلی یا والد (Base/Parent class) ، کلاسی است که توسط دیگر کلاس ها ارث بری می شود.
کلاس مشتق شده یا فرزند (Derived/Child class) ، کلاسی هست که از کلاس اصلی ارث می برد.
یک کلاس می تونه با ارث بری (Inherit) از کلاس دیگه ، کلاس اصلی رو سفارشی یا گسترش بده.
وراثت از یک کلاس این امکان رو به ما می ده که از تابعی رو که در اون کلاس اصلی وجود داره بارها استفاده کنیم ، بدون اینکه مجبور باشیم هر بار شبیه همون تابع رو از ابتدا بسازیم.
یک کلاس فقط مجازه از یک کلاس دیگه ارث بری کنه ولی خودش میتونه توسط تعداد زیادی کلاس دیگه به ارث برده شه


برگرفته از :

Beginning C# Object-Oriented Programming (Apress - Dan Clark)
C# 8.0 in a Nutshell The Definitive Reference (OReilly - Joseph Albahari & Eric Johannsen)
inheritanceارث بریشی گراییبرنامه نویسی شی گرااصول شی گرایی
برنامه نویس
شاید از این پست‌ها خوشتان بیاید