انواع وراثت

انواع وراثت در برنامه‌نویسی شیءگرا

وراثت (Inheritance) یکی از پایه‌ای‌ترین مفاهیم در برنامه‌نویسی شیءگرا است که به کلاس‌ها اجازه می‌دهد ویژگی‌ها و متدهای کلاس دیگر را به ارث ببرند. این مکانیسم باعث کاهش تکرار کد و افزایش قابلیت استفاده مجدد می‌شود.


1. وراثت ساده (Single Inheritance)

در این نوع وراثت، یک کلاس فرزند فقط از یک کلاس والد ارث‌بری می‌کند. این ساده‌ترین و رایج‌ترین نوع وراثت است:

  • کلاس فرزند تمام ویژگی‌های کلاس والد را به ارث می‌برد
  • امکان بازنویسی (Override) متدهای والد وجود دارد
  • مناسب برای ایجاد سلسله مراتب ساده
مثال توضیح
کلاس حیوان → کلاس سگ سگ تمام ویژگی‌های عمومی حیوان را به ارث می‌برد

2. وراثت چندگانه (Multiple Inheritance)

در این مدل، یک کلاس می‌تواند از چندین کلاس والد به طور همزمان ارث‌بری کند. این ویژگی در زبان‌هایی مانند پایتون پشتیبانی می‌شود:

نکته مهم: در وراثت چندگانه، ترتیب ارث‌بری اهمیت دارد و ممکن است باعث بروز مشکلاتی مانند الماس‌شکل (Diamond Problem) شود.
  1. امکان ترکیب قابلیت‌های چند کلاس در یک کلاس
  2. افزایش انعطاف‌پذیری در طراحی
  3. نیاز به مدیریت دقیق تعارض‌های احتمالی

3. وراثت چندسطحی (Multilevel Inheritance)

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

کلاس A → کلاس B → کلاس C
در این حالت کلاس C به تمام ویژگی‌های A و B دسترسی دارد

این نوع وراثت برای ایجاد سلسله مراتب عمیق‌تر استفاده می‌شود اما باید مراقب پیچیدگی بیش از حد بود.

4. وراثت سلسله‌مراتبی (Hierarchical Inheritance)

در این الگو، چندین کلاس فرزند از یک کلاس والد مشترک ارث‌بری می‌کنند:

کلاس حیوان
کلاس سگ کلاس گربه

این روش زمانی مناسب است که چندین کلاس ویژگی‌های مشترک زیادی دارند اما هر کدام رفتارهای خاص خود را نیاز دارند.

برای مطالعه بیشتر درباره پیاده‌سازی این مفاهیم در پایتون می‌توانید به منبع مراجعه کنید.


در انتخاب نوع وراثت باید به عواملی مانند پیچیدگی پروژه، قابلیت نگهداری کد و روابط منطقی بین کلاس‌ها توجه کرد. استفاده نامناسب از وراثت می‌تواند باعث ایجاد وابستگی‌های ناخواسته و کاهش خوانایی کد شود.