مفهوم Object-Oriented Programming (بخش سوم)

مفهوم Object-Oriented Programming (بخش سوم)

مفهوم Object-Oriented Programming (بخش سوم)

  • درک وراثت (Inheritance) و انواع مختلف آن

  • تفاوت بین Generalization و Specialization

object-orientated-programming

مفهوم Object-Oriented Programming (بخش سوم)

  • درک وراثت (Inheritance) و انواع مختلف آن

  • تفاوت بین Generalization و Specialization

ارث بری مکانیسم دستیابی به ویژگی ها و رفتارهای یک کلاس توسط کلاس دیگر است. کلاس که اعضای آن به ارث برده می شوند، کلاس پایه نامیده می شوند و کلاسی که این اعضا را به ارث می برد، کلاس مشتق شده است. وراث یک رابطه IS-A را پیاده سازی می کند.

مزایا:

  • کاهش افزونگی کد
  • استفاده قابل مجدد از کد
  • مقدار کد منبع کاهش می یابد و خوانایی کد را بهبود می بخشد.
  • کد آسان برای مدیریت و تقسیم به کلاس های پدر و فرزند است.
  • پشتیبانی از گسترش کد

معایب:

  • در کلاس پایه وراثت و کلاس های فرزند به شدت به هم متصل هستند. از این رو اگر کد کلاس والدین (پدر) را تغییر دهید، آن را به تمام کلاسهای کودک تحت تاثیر قرار می دهد.
  • در سلسله مراتب کلاس، بسیاری از اعضای داده استفاده نشده و حافظه اختصاص داده شده به آنها مورد استفاده قرار نمی گیرد. بنابراین اگر برنامه ارثی را به درستی اجرا نکنید، بر عملکرد برنامه تاثیر می گذارد.

انواع مختلف وراثت

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

Single inheritance

در این ارث بری، یک کلاس مشتق شده از یک کلاس پایه ایجاد شده است.

 

singleinheritance.png

 

Single-inheritance.png

 

Multi-level inheritance

در این ارث بری، یک کلاس مشتق شده از یک کلاس مشتق شده دیگر ایجاد شده است.

 

Multi-level-inheritance.png

 

Multi-level-inheritance.png

 

Multiple inheritance

در این ارث، یک کلاس مشتق شده از بیش از یک کلاس پایه ایجاد شده است. این وراثت توسط زبان های .NET مانند C #،# F و غیره پشتیبانی نمی شود.

 

multipleinheritance.png

 

multipleinheritance.png

 

Multipath inheritance

در این ارث بری، یک کلاس مشتق شده از دیگر کلاسهای مشتق شده و همان کلاس پایه دیگر کلاسهای مشتق شده ایجاد شده است. این وراث توسط زبان های .NET مانند C #، F # و غیره پشتیبانی نمی شود.

 

multipathinheritance.png

 

Hierarchical inheritance

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

 

hierarchicalinheritance1.png

 

Hybrid inheritance

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

 

hybridinheritance.png

 

تفاوت بین Generalization و Specialization در برنامه نویسی شی‌گرا

فرآیند استخراج ویژگی های مشترک از دو یا چند کلاس و ترکیب آنها به یک کلاس تعمیم یافته، Generalization نامیده می شود. ویژگی های مشترک می توانند صفت ها یا متد ها باشند.

 

generalizationarrow.png

 

Specialization به معنی ایجاد کلاس های دیگر از یک کلاس موجود است.

بیایید نمونه ای از حساب بانکی بگیریم یک حساب بانکی از دو نوع است - حساب جاری و حساب ذخیره سازی. حساب جاری و حساب ذخیره مفاهیم رایج / عمومی را مانند شماره حساب، حساب کاربری و غیره از حساب بانکی به ارث می برد و همچنین دارای خواص تخصصی خاص خود مانند نرخ بهره و غیره هستند.

 

generalization.png

 

 

 

نظرات یا سوالات خودرا با ما درمیان بگذارید

0912 097 5516 :شماره تماس
0713 625 1757 :شماره تماس