একাধিক উত্তরাধিকার প্রকার সম্পর্কে ওরাকল ডকুমেন্টেশন পৃষ্ঠা থেকে, আমরা এখানে সঠিক উত্তরটি খুঁজে পেতে পারি । এখানে আমাদের প্রথমে জাভাতে একাধিক উত্তরাধিকারের ধরনটি জানা উচিত: -
- রাষ্ট্রের একাধিক উত্তরাধিকার।
- বাস্তবায়নের একাধিক উত্তরাধিকার।
- একাধিক প্রকারের উত্তরাধিকার।
জাভা "রাষ্ট্রের একাধিক উত্তরাধিকারকে সমর্থন করে না, তবে এটি জাভা 8 রিলিজ এবং ইন্টারফেসের সাথে একাধিক উত্তরাধিকারসূত্রে ডিফল্ট পদ্ধতিতে প্রয়োগের একাধিক উত্তরাধিকারকে সমর্থন করে।
তারপরে এখানে "ডায়মন্ড সমস্যা" এবং জাভা কীভাবে এটি মোকাবেলা করার জন্য প্রশ্নটি উত্থাপিত হয়: -
বাস্তবায়নের একাধিক উত্তরাধিকারের ক্ষেত্রে জাভা সংকলক সংকলন ত্রুটি দেয় এবং ব্যবহারকারীকে ইন্টারফেসের নাম উল্লেখ করে এটি ঠিক করতে বলে। উদাহরণ এখানে:
interface A {
void method();
}
interface B extends A {
@Override
default void method() {
System.out.println("B");
}
}
interface C extends A {
@Override
default void method() {
System.out.println("C");
}
}
interface D extends B, C {
}
সুতরাং এখানে আমরা ত্রুটিটি পেয়ে যাব: - ইন্টারফেস ডি বি এবং সি ইন্টারফেস ডি প্রকার বি, সি প্রসারিত থেকে পদ্ধতি () এর সাথে সম্পর্কিত না হওয়া ডিফল্টের উত্তরাধিকারী হয়
আপনি এটি ঠিক করতে পারেন: -
interface D extends B, C {
@Override
default void method() {
B.super.method();
}
}
- এক ধরণের জাভা একাধিক উত্তরাধিকারে এটিকে অনুমতি দেয় কারণ ইন্টারফেসে পরিবর্তনীয় ক্ষেত্র নেই এবং কেবলমাত্র একটি বাস্তবায়ন শ্রেণীর অন্তর্ভুক্ত তাই জাভা কোনও সমস্যা দেয় না এবং এটি আপনাকে এটি করতে দেয়।
উপসংহারে আমরা বলতে পারি যে জাভা রাষ্ট্রের একাধিক উত্তরাধিকারকে সমর্থন করে না তবে এটি বাস্তবায়নের একাধিক উত্তরাধিকার এবং বিভিন্ন ধরণের একাধিক উত্তরাধিকারকে সমর্থন করে ।