tgoop.com/fullStackDevs/535
Last Update:
❇️ چرا سی شارپ و جاوا multiple inheritance را پشتیبانی نمیکنند❕
🔰 سی شارپ و جاوا multiple inheritance را پشتیبانی نمیکنند و استدلال سازندگان آنها برای این موضوع این بوده است که اضافه کردن ویژگی multiple inheritance به این زبانها باعث پیچیدگی بیش از حد میشود در حالی که که مزایای آن به نسبت کمتر میباشد.
در سی شارپ یک کلاس تنها این اجازه را دارد که فقط از یک کلاس ارث بری کند (اصطلاحا single inheritance گفته میشود).
🔹در multiple inheritance، یک کلاس میتواند اجزای خود را از یک یا چند کلاس ارث بری کند.
✳️ چرا multiple inheritance باعث پیچیدگی میشود⁉️
🔹فرض کنید که کلاس A کلاس پایه است. و کلاس های B و C از این کلاس(کلاس A) ارث بری میکنند. و کلاس D از کلاس های BوC ارث بری میکند.
شرایطی را در نظر بگیرید که هریک از کلاس های B و C به صورت جداگانه متدی را که در کلاس پدرشان (کلاس A) وجود دارد override کنند در نتیجه این عمل برای کلاس D که از این دو کلاس (B و C) ارث بری میکند ابهامی را به وجود می آورد ' که باید از کدام پیاده سازی استفاده کنم؟ '
▫️اگرچه برای این مشکل راه هایی در c++ معرفی شده است (سی پلاس پلاس multiple inheritance را پشتیبانی میکند) اما این روش ها برای برنامه نویسان، باعث ایجاد ابهام میشود.
✅ در زبان های سی شارپ و جاوا تنها راه استفاده از multiple inheritance، استفاده و پیاده سازی چندین interface میباشد
@FullStackDevs
BY Web Devs
Share with your friend now:
tgoop.com/fullStackDevs/535