কেন একাধিক উত্তরাধিকার C# এ সম্ভব নয়?
কেন একাধিক উত্তরাধিকার C# এ সম্ভব নয়?

ভিডিও: কেন একাধিক উত্তরাধিকার C# এ সম্ভব নয়?

ভিডিও: কেন একাধিক উত্তরাধিকার C# এ সম্ভব নয়?
ভিডিও: কেন একাধিক উত্তরাধিকার C# এ সমর্থিত নয় | ডিজি ট্রেনিং 2024, মে
Anonim

C# করে না সমর্থন একাধিক উত্তরাধিকার , কারণ তারা যুক্তি দিয়েছিল যে যোগ করা একাধিক উত্তরাধিকার খুব কম সুবিধা প্রদান করার সময় C# তে খুব বেশি জটিলতা যোগ করা হয়েছে। C# এ, ক্লাসগুলি শুধুমাত্র অনুমোদিত প্রতি উত্তরাধিকারী একক অভিভাবক শ্রেণী থেকে, যা একক বলা হয় উত্তরাধিকার.

শুধু তাই, কেন একাধিক উত্তরাধিকার অনুমোদিত নয়?

জাভা সমর্থন করে একাধিক উত্তরাধিকার শুধুমাত্র ইন্টারফেসের মাধ্যমে। একটি শ্রেণী যেকোনো সংখ্যক ইন্টারফেস বাস্তবায়ন করতে পারে কিন্তু শুধুমাত্র একটি শ্রেণীকে প্রসারিত করতে পারে। একাধিক উত্তরাধিকার সমর্থিত নয় কারণ এটি মারাত্মক হীরা সমস্যার দিকে পরিচালিত করে। একটি ইন্টারফেস হল একটি চুক্তি যা আপনার ক্লাসকে বাস্তবায়ন করতে হবে।

কেউ জিজ্ঞাসা করতে পারে, আমরা কি C# এ একাধিক ইন্টারফেস উত্তরাধিকারী হতে পারি? ইন্টারফেস কি একটি শ্রেণীতে চুক্তি বা "চুক্তি" মত পারব . ক্লাস করতে পারা আছে একাধিক ইন্টারফেস কিন্তু ক্লাস করা যাবে না একাধিক উত্তরাধিকারী ক্লাস ক্লাস উত্তরাধিকারসূত্রে থেকে বেশি এক ক্লাস হিসাবে পরিচিত একাধিক - উত্তরাধিকার . C# করে অনুমতি দেয় না একাধিক - উত্তরাধিকার.

এখানে, একাধিক উত্তরাধিকার C# এ ডায়মন্ড সমস্যা কি?

দ্য " হীরা সমস্যা " একটি অস্পষ্টতা যা দেখা দেয় যখন দুটি শ্রেণী B এবং C হয় উত্তরাধিকারী A, এবং ক্লাস D থেকে উত্তরাধিকারসূত্রে B এবং C উভয় থেকে। যদি A-তে একটি পদ্ধতি থাকে যে B এবং C ওভাররাইড করেছে, এবং D এটিকে ওভাররাইড করে না, তাহলে পদ্ধতির কোন ক্লাস D করে? উত্তরাধিকারী : B এর, নাকি C এর?

উদাহরণ সহ C# এ একাধিক উত্তরাধিকার কি?

সি# অনুমতি দেয় না একাধিক উত্তরাধিকার ক্লাস সহ কিন্তু এটি ইন্টারফেস ব্যবহার করে প্রয়োগ করা যেতে পারে। পিছনে কারণ হল: একাধিক উত্তরাধিকার সামান্য সুবিধার সাথে খুব বেশি জটিলতা যোগ করুন। বেস শ্রেণীর সদস্যদের মধ্যে বিরোধের বিশাল সম্ভাবনা রয়েছে। উত্তরাধিকার ইন্টারফেসের সাথে একই কাজ প্রদান করে একাধিক উত্তরাধিকার.

প্রস্তাবিত: