09982292579
info@mehraeen.ac.ir
فارسی پرچم
فارسی
یک زبان را انتخاب کنید
فارسی پرچم
فارسی
0
دسته ها
خانه تقویم‌آموزشی مدرس وبلاگ چارت‌‌دروس تماس‌با‌ما درباره‌ما انجمن‌ها
برنامه سازی پیشرفته

جلسه 7وراثت

خلاصه نکات کلیدی: وراثت امکان اشتراک‌گذاری کد و ایجاد سلسله مراتب کلاس را فراهم می‌کند. کلاس والد (Base) و کلاس فرزند (Derived) اجزای اصلی وراثت هستند. مزایای اصلی شامل بازاستفاده از کد، قابلیت توسعه و پلی‌مورفیسم است. بسته به زبان برنامه‌نویسی، انواع مختلفی از وراثت (تکی، چندتایی، چندسطحی) پشتیبانی می‌شود.

تیتر: وراثت: اساس بازاستفاده از کد و ایجاد سلسله مراتب

توضیحات:

وراثت یکی از مفاهیم کلیدی در برنامه‌نویسی شیءگرا است که به کلاس‌ها اجازه می‌دهد تا ویژگی‌ها (متغیرها) و رفتارها (متدها) را از کلاس‌های دیگر به ارث ببرند. این مفهوم، پایه‌ای برای ایجاد سلسله مراتب کلاس‌ها و ترویج اصل “بازاستفاده از کد” (Code Reusability) است.

در وراثت، کلاسی که ویژگی‌ها را به ارث می‌برد، “کلاس فرزند” (Child Class) یا “کلاس مشتق شده” (Derived Class) نامیده می‌شود و کلاسی که ویژگی‌ها را به ارث می‌دهد، “کلاس والد” (Parent Class) یا “کلاس پایه” (Base Class) نامیده می‌شود. کلاس فرزند علاوه بر ویژگی‌های به ارث رسیده از والد، می‌تواند ویژگی‌ها و رفتارهای منحصر به فرد خود را نیز داشته باشد.

مزایای اصلی وراثت:


  1. بازاستفاده از کد: از تکرار کدنویسی جلوگیری می‌کند. کلاس‌های والد می‌توانند منطق مشترک را در خود جای دهند و کلاس‌های فرزند از آن استفاده کنند.

  2. ایجاد سلسله مراتب: به سازماندهی کد در قالب یک ساختار منطقی و سلسله مراتبی کمک می‌کند (مانند دسته‌بندی موجودیت‌ها).

  3. قابلیت توسعه‌پذیری (Extensibility): امکان افزودن قابلیت‌های جدید به کلاس‌های موجود بدون تغییر دادن کد اصلی آن‌ها وجود دارد.

  4. پلی‌مورفیسم (Polymorphism): وراثت یکی از پیش‌نیازهای اصلی برای پیاده‌سازی پلی‌مورفیسم است که امکان رفتار متفاوت اشیاء از کلاس‌های مختلف را در پاسخ به یک فراخوانی یکسان فراهم می‌کند.

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


  • وراثت تکی (Single Inheritance): یک کلاس فرزند فقط از یک کلاس والد ارث می‌برد.

  • وراثت چندتایی (Multiple Inheritance): یک کلاس فرزند می‌تواند از چندین کلاس والد ارث ببرد. (برخی زبان‌ها مانند جاوا از آن پشتیبانی نمی‌کنند یا با واسط‌ها پیاده‌سازی می‌شود).

  • وراثت چندسطحی (Multilevel Inheritance): کلاس A والد B، و B والد C باشد (A -> B -> C).

  • وراثت سلسله مراتبی (Hierarchical Inheritance): یک کلاس والد دارای چندین کلاس فرزند باشد.

مثال:

فرض کنید در حال طراحی یک سیستم برای مدیریت حیوانات هستیم. می‌توانیم یک کلاس والد به نام Animal تعریف کنیم که دارای متدهایی مانند eat() و sleep() باشد. سپس کلاس‌های فرزند مانند Dog و Cat را تعریف کنیم که از Animal ارث ببرند. این کلاس‌های فرزند به طور خودکار متدهای eat() و sleep() را خواهند داشت و می‌توانند متدهای مخصوص خود مانند bark() برای Dog و meow() برای Cat را نیز اضافه کنند.

تمرین پایان فصل:


  1. یک کلاس والد به نام Vehicle با متدهایی مانند start_engine() و stop_engine() ایجاد کنید.

  2. دو کلاس فرزند به نام‌های Car و Motorcycle از Vehicle ارث ببرند.

  3. برای هر کلاس فرزند، یک متد مخصوص به خود اضافه کنید (مثلاً drive() برای Car و lean() برای Motorcycle).

  4. در تابع اصلی برنامه، نمونه‌هایی از Car و Motorcycle بسازید و متدهای والد و فرزند را فراخوانی کنید.

خلاصه نکات کلیدی:















  • وراثت امکان اشتراک‌گذاری کد و ایجاد سلسله مراتب کلاس را فراهم می‌کند.

  • کلاس والد (Base) و کلاس فرزند (Derived) اجزای اصلی وراثت هستند.

  • مزایای اصلی شامل بازاستفاده از کد، قابلیت توسعه و پلی‌مورفیسم است.

  • بسته به زبان برنامه‌نویسی، انواع مختلفی از وراثت (تکی، چندتایی، چندسطحی) پشتیبانی می‌شود.
درس متنی 7/19
در حال مشاهده
جلسه 7وراثت