تفاوت کلیدی – وراثت چندگانه در مقابل چند سطحی
برنامه نویسی شی گرا (OOP) الگوی طراحی یک برنامه با استفاده از کلاس ها و متدها است. سناریوهای دنیای واقعی را می توان با اشیاء ترسیم کرد. بنابراین ساخت راه حل های نرم افزاری آسان است. کلاس یک طرح اولیه برای ساخت یک شی است. این شامل خواص و روش ها است. به عنوان مثال، قبل از ایجاد یک شی دانش آموز، باید یک دانش آموز کلاس با ویژگی ها و متدها وجود داشته باشد. یک دانش آموز می تواند ویژگی هایی مانند شناسه دانشجویی، نام و روش هایی مانند خواندن، نوشتن، مطالعه داشته باشد. روش ها رفتار را توصیف می کنند در حالی که ویژگی ها ویژگی ها هستند. پس از ایجاد کلاس، امکان ایجاد اشیاء با استفاده از آنها وجود دارد.ایجاد آبجکت با نام Object Instantiation نیز شناخته می شود. شی به صورت مجزا وجود ندارد. آنها با اشیاء دیگر ارتباط برقرار می کنند و داده ها در داخل اشیاء ارسال می شوند. یکی از ارکان OOP، وراثت است. هدف وراثت افزایش قابلیت استفاده مجدد کد است. کلاس جدیدی از ویژگی ها و متدهای کلاس موجود را ایجاد می کند. کلاس موجود به عنوان کلاس پایه شناخته می شود و کلاس جدید کلاس مشتق شده نامیده می شود. وراثت چندگانه و وراثت چند سطحی انواع ارثی هستند. این مقاله به تفاوت بین آنها می پردازد. تفاوت اصلی بین وراثت چند سطحی و چند سطحی این است که وراثت چندگانه زمانی است که یک کلاس از بسیاری از کلاس های پایه ارث می برد در حالی که وراثت چند سطحی زمانی است که یک کلاس از یک کلاس مشتق شده ارث می برد و آن کلاس مشتق شده را به یک کلاس پایه برای یک کلاس جدید تبدیل می کند.
ارث چندگانه چیست؟
وراثت چندگانه زمانی است که یک کلاس بیش از یک کلاس پایه را به ارث می برد.
شکل 01: وراثت چندگانه
A B و C کلاس هستند. A و B کلاس های پایه هستند و C کلاس مشتق شده است. کلاس C باید وابستگی هر دو کلاس پایه A و B را مدیریت کند. ارث بری چندگانه به طور گسترده در پروژه های نرم افزاری استفاده نمی شود. این سیستم را پیچیده تر می کند زیرا یک کلاس کلاس های زیادی را به ارث می برد.
برای مثال، فرض کنید کلاس A و B هر دو متدی با نام یکسان دارند که sum() است و کلاس C هر دو کلاس را مشتق می کند. پس از ایجاد یک شی از نوع C و فراخوانی متد sum () می تواند خطا ایجاد کند زیرا هر دو کلاس متد یکسانی دارند. کامپایلر نمی داند کدام تابع را فراخوانی کند. بنابراین، وراثت چندگانه پیچیدگی یک سیستم را افزایش می دهد. وراثت چندگانه در زبان C++ پشتیبانی میشود اما زبانهایی مانند جاوا، سی شارپ از وراثت چندگانه پشتیبانی نمیکنند.در عوض، این زبانها از رابطی استفاده میکنند که شبیه به یک کلاس است، اما نمیتوان آن را نمونهسازی کرد.
وراثت چند سطحی چیست؟
وراثت چندسطحی زمانی است که یک کلاس از یک کلاس مشتق شده ارث می برد و آن کلاس مشتق شده را یک کلاس پایه برای یک کلاس جدید می سازد.
شکل 02: وراثت چندسطحی
وراثت چند سطحی دارای سه سطح است. کلاس متوسطی که B از کلاس A و کلاس C از کلاس B به ارث می برد. A کلاس پایه برای B و B کلاس پایه برای C است.
برنامه ای که وراثت چند سطحی را پیاده سازی می کند به شرح زیر است. برنامه با استفاده از جاوا نوشته شده است.
شکل 03: برنامه ای که وراثت چند سطحی را پیاده سازی می کند
طبق برنامه فوق، کلاس A کلاس پایه برای کلاس B است. کلاس B کلاس پایه برای کلاس C است. همه ویژگی ها و متدهای کلاس A توسط کلاس B قابل دسترسی هستند. همه ویژگی ها و متدهای کلاس B توسط کلاس C قابل دسترسی است. بنابراین، کلاس C می تواند به ویژگی ها و متدهای هر دو A و B دسترسی پیدا کند. هنگام ایجاد یک شی از نوع C، می توان هر سه روش A ()، B () و C () را فراخوانی کرد. خروجی A، B، C را می دهد.
شباهت بین وراثت چند سطحی و چند سطحی چیست؟
هر دو نوع وراثت هستند
تفاوت بین وراثت چند سطحی و چند سطحی چیست؟
وارثیت چندگانه در مقابل وراثت چند سطحی |
|
Multiple Heritance یک نوع ارثی است که در آن یک کلاس از بیش از یک کلاس پایه ارث می برد. | Multilele Heritance یک نوع ارث بری است که از یک کلاس مشتق شده ارث می برد، و آن کلاس مشتق شده را به یک کلاس پایه برای یک کلاس جدید تبدیل می کند. |
استفاده | |
Multiple Heritance به طور گسترده استفاده نمی شود زیرا سیستم را پیچیده تر می کند. | وراثت چندسطحی به طور گسترده استفاده می شود. |
سطوح کلاس | |
Multiple Heritance دارای دو سطح کلاس است، یعنی کلاس پایه و کلاس مشتق شده. | وراثت چندسطحی دارای سه سطح کلاس است، کلاس پایه، کلاس متوسط و کلاس مشتق شده. |
خلاصه - وراثت چند سطحی در مقابل چند سطحی
وراثت یک رکن اصلی برنامه نویسی شی گرا است. انواع مختلفی از ارث وجود دارد. آنها وراثت تک سطحی، وراثت چند سطحی، وراثت چندگانه، وراثت سلسله مراتبی و وراثت ترکیبی هستند. ارث بری سطح تک دارای یک کلاس پایه و یک کلاس مشتق شده است. وراثت سلسله مراتبی دارای یک کلاس پایه و چندین کلاس مشتق شده است. وراثت ترکیبی ترکیبی از وراثت چند سطحی و چند سطحی است. این مقاله تفاوت بین ارث چندگانه و وراثت چند سطحی را شرح می دهد. تفاوت بین وراثت های چند سطحی و چند سطحی در این است که وراثت چندگانه زمانی است که یک کلاس از بسیاری از کلاس های پایه ارث می برد در حالی که وراثت چند سطحی زمانی است که یک کلاس از یک کلاس مشتق شده ارث می برد و آن کلاس مشتق شده را به یک کلاس پایه برای یک کلاس جدید تبدیل می کند. وراثت چند سطحی به طور گسترده ای از وراثت چند سطحی استفاده می شود.
دانلود PDF Multiple vs Multilevel Heritance
می توانید نسخه PDF این مقاله را دانلود کنید و طبق یادداشت نقل قول برای اهداف آفلاین از آن استفاده کنید. لطفاً نسخه PDF را از اینجا دانلود کنید تفاوت بین وراثت چند سطحی و چند سطحی