ভিডিও: কেন একাধিক উত্তরাধিকার C++ এ সমর্থিত কিন্তু জাভাতে নয়?
2024 লেখক: Lynn Donovan | [email protected]. সর্বশেষ পরিবর্তিত: 2023-12-15 23:44
সি++ , সাধারণ লিস্প এবং কয়েকটি অন্যান্য ভাষা একাধিক উত্তরাধিকার সমর্থন করে যখন জাভা না সমর্থন এটা জাভা অনুমতি দেয় না একাধিক উত্তরাধিকার এটি দ্বারা সৃষ্ট অস্পষ্টতা এড়াতে। এই ধরনের সমস্যার একটি উদাহরণ হল হীরা সমস্যা যা ঘটে একাধিক উত্তরাধিকার.
তদনুসারে, কেন একাধিক উত্তরাধিকার জাভাতে সমর্থিত নয়?
জাভা সমর্থন করে একাধিক উত্তরাধিকার শুধুমাত্র ইন্টারফেসের মাধ্যমে। একটি শ্রেণী যেকোনো সংখ্যক ইন্টারফেস বাস্তবায়ন করতে পারে কিন্তু শুধুমাত্র একটি শ্রেণীকে প্রসারিত করতে পারে। একাধিক উত্তরাধিকার হয় না সমর্থিত কারণ এটি মারাত্মক হীরা সমস্যার দিকে পরিচালিত করে। আপনি ইন্টারফেস থেকে কোনো কার্যকারিতা লাভ করবেন না।
এছাড়াও, একাধিক উত্তরাধিকারে ডায়মন্ড সমস্যা কি? দ্য হীরা সমস্যা ” একটি অস্পষ্টতা যা অনুমতি দেওয়ার ফলে দেখা দিতে পারে একাধিক উত্তরাধিকার . এটি একটি গুরুতর সমস্যা ভাষাগুলির জন্য (যেমন C++) অনুমতি দেয় একাধিক উত্তরাধিকার রাষ্ট্রের তবে জাভাতে, একাধিক উত্তরাধিকার ক্লাসের জন্য অনুমোদিত নয়, শুধুমাত্র ইন্টারফেসের জন্য, এবং এর মধ্যে রাষ্ট্র নেই।
একইভাবে, লোকেরা জিজ্ঞাসা করে, কেন C++ একাধিক উত্তরাধিকার সমর্থন করে কিন্তু C# সমর্থন করে না?
একাধিক উত্তরাধিকার ভিতরে C# C# একাধিক উত্তরাধিকার সমর্থন করে না , কারণ তারা যুক্তি দিয়েছিল যে যোগ করা একাধিক উত্তরাধিকার অত্যধিক জটিলতা যোগ করা হয়েছে সি# খুব কম সুবিধা প্রদান করার সময়। ভিতরে সি# , ক্লাস শুধুমাত্র অনুমতি দেওয়া হয় উত্তরাধিকারী একক অভিভাবক শ্রেণী থেকে, যা একক বলা হয় উত্তরাধিকার.
কিভাবে C++ একাধিক উত্তরাধিকার সমর্থন করে?
অন্যান্য অনেক অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষার বিপরীতে, সি++ অনুমতি একাধিক উত্তরাধিকার . একাধিক উত্তরাধিকার একটি শিশু ক্লাস করার অনুমতি দেয় উত্তরাধিকারী একাধিক অভিভাবক শ্রেণীর থেকে। প্রাণী এবং সরীসৃপ ক্লাস উত্তরাধিকারী ইহা হতে. শুধুমাত্র প্রাণীর শ্রেণী Breathe() পদ্ধতিটিকে ওভাররাইড করে।