ارث مجازی چگونه مشکل الماس را حل می کند؟
ارث مجازی چگونه مشکل الماس را حل می کند؟

تصویری: ارث مجازی چگونه مشکل الماس را حل می کند؟

تصویری: ارث مجازی چگونه مشکل الماس را حل می کند؟
تصویری: پسر باید...🗿😐 2024, ممکن است
Anonim

ارث مجازی حل می کند کلاسیک" مشکل الماس ". این تضمین می کند که کلاس کودک تنها یک نمونه از کلاس پایه مشترک را دریافت کند. به عبارت دیگر، کلاس مار اراده فقط یک نمونه از کلاس LivingThing دارند. کلاس های Animal و Reptile این مورد را به اشتراک می گذارند.

در این رابطه مشکل الماس در ارث چیست؟

مشکل الماس ” ابهامی است که می تواند در نتیجه اجازه دادن به چندگانه ایجاد شود وراثت . جدی است مسئله برای زبان هایی (مانند C++) که امکان چندگانه را فراهم می کند وراثت دولت با این حال، در جاوا، چندگانه است وراثت برای کلاس‌ها مجاز نیست، فقط برای رابط‌ها، و اینها حاوی وضعیت نیستند.

پس از آن، سوال این است که چگونه یک کلاس پایه مجازی به ارث بردن کمک می کند؟ کلاس های پایه مجازی راهی برای صرفه جویی در فضا و جلوگیری از ابهامات در آن ارائه دهید کلاس سلسله مراتبی که از چندین وراثت استفاده می کنند. وقتی یک کلاس پایه به صورت a مشخص شده است پایگاه مجازی ، می تواند به صورت غیر مستقیم عمل کند پایه بیش از یک بار بدون تکراری از اعضای داده آن.

همچنین بدانید ارث عمومی مجازی چیست؟

ارث مجازی یک تکنیک ++C است که تنها یک کپی از متغیرهای عضو کلاس پایه را تضمین می کند به ارث برده توسط کلاس های مشتق از نوه این ویژگی بیشتر برای چندگانه مفید است وراثت ، همانطور که آن را می سازد مجازی برای کلاس مشتق‌کننده و همه کلاس‌هایی که از آن مشتق شده‌اند، یک Subject مشترک را پایه‌گذاری کنید.

رابط چگونه مشکل الماس را حل می کند؟

چگونه می کند با استفاده از یک رابط در جاوا حل را مشکل الماس ? از این رو، اگر دو رابط ها امضای متد یکسانی دارد و یک کلاس می‌خواهد از این دو به ارث بری (در جاوا پیاده‌سازی شود). رابط ها ، هیچ "بدن روش" برای به ارث بردن وجود ندارد، از این رو " الماس وراثت" موضوع اجتناب می شود.

توصیه شده: