زمانی که نام وراثت به گوش ما میخورد یعنی ما با یک چیزی به نام والد و یک چیزی به نام فرزند سرکار داریم. در شی گرایی وراثت به این معنیست که میخواهیم از یک کلاس، کلاسی دیگر را تشکیل دهیم. کلاس اول را والد و کلاس دوم را فرزند مینامیم. وقتی ما کلاس فرزند را میسازیم یعنی به آن نیاز داریم. پس بطور منطقی این کلاس قرار است پیشرفته تر از والد خود باشد.
فرض کنیم کلاسی داریم به نام حیوانات که در آن خصوصیات کلی حیوانات شرح داده شده. مثلا یک حیوان میتواند حرکت کند، شکار کند، غذا بخورد و … حال میخواهیم از این کلاس، دو کلاس دیگر extend کنیم یا به عبارتی فرزندش را بسازیم به نام کلاس های پرندگان و ماهی ها. این دو گونه خیلی متفاوت هستند اما ویژگی های مشترکی دارند که از کلاس پدر یعنی حیوانات به ارث میبرند برای مثال هر دو شکار میکنند یا هر دو حرکت میکنند. اما با این حال هر کدام خصوصیات مخصوص خود را نیز دارند. درست است که هر دو حرکت میکنند ولی یکی پرواز میکند و دیگری شنا میکند. هیچ یک از این دو رفتار در کلاس پدر وجود نداشت ولی میتوانیم آن ها را در کلاس فرزند اضافه کنیم.
به طور کلی زمانی از وراثت استفاده میکنیم که میخواهیم یک کلاسی را بنویسیم که از نظر ساختاری شباهت زیادی با یک کلاس دیگر دارد.
به پروژه قبلی خود که در قسمت های قبل دیدیم بر میگردیم. فرض کنید میخواهیم برای هر بازیکن یک دست در نظر بگیریم که مقداری کارت دارد. این کارت ها میتوانند بر خورده، حذف یا اضافه شوند. پس متوجه میشویم که دست هر بازیکن چقدر شبیه به کلاس Deck میباشد. پس لازم است این کلاس جدید فرزندی از کلاس Deck باشد تا از اضافه کاری جلوگیری شود.
پس در جلسات آینده درمورد چگونگی ایجاد این کلاس صحبت میکنیم. اگر با تمرین عملی شی گرایی را یاد بگیرید این مبحث اصلا مبحث سختی نیست پس تمرین فراموشتان نشود.