হীরকের সমস্যাটি হ'ল পদ্ধতিটি কোনটি প্রয়োগ করবে তা সিদ্ধান্ত নিতে অক্ষম। ভাষা প্রয়োগের অংশ হিসাবে কোন প্রয়োগকে বেছে নিতে হবে তা নির্ধারণ করে স্কেলা এটিকে সমাধান করে ( এই উইকিপিডিয়া নিবন্ধে স্কালার অংশটি পড়ুন )।
অবশ্যই, একই ক্রমের সংজ্ঞাটি শ্রেণীর একাধিক উত্তরাধিকারেও ব্যবহার করা যেতে পারে, তবে বৈশিষ্ট্যগুলি কেন বিরক্ত করবেন?
আইএমওটি কনস্ট্রাক্টর হওয়ার কারণ। কনস্ট্রাক্টরগুলির নিয়মিত পদ্ধতিগুলির কোনও সীমাবদ্ধতা থাকে না - সেগুলি কেবলমাত্র প্রতিটি বস্তুর জন্য একবার কল করা যেতে পারে, এবং প্রথম শ্রেণীর নির্দেশ হিসাবে একটি শিশু শ্রেণির কনস্ট্রাক্টরকে অবশ্যই তার পিতামাতার কনস্ট্রাক্টর বলতে হবে (বেশিরভাগ ভাষায় ভাষা আপনার যদি প্যারামিটারগুলি পাস করার প্রয়োজন না হয় তবে এটি স্পষ্টভাবে করুন।
যদি বি এবং সি উত্তরাধিকার সূত্রে এ এবং ডি উত্তরাধিকার সূত্রে বি এবং সি উত্তরাধিকার সূত্রে প্রাপ্ত হয় এবং বি এবং সি এর উভয় কনস্ট্রাক্টর এ এর কনস্ট্রাক্টরকে কল করে তবে ডি এর কনস্ট্রাক্টর দু'বার এ'র কনস্ট্রাক্টরকে কল করবে। পদ্ধতিগুলির সাথে স্কালার মতো কোন প্রয়োগগুলি বেছে নেওয়ার তা নির্ধারণ করা এখানে কাজ করবে না কারণ বি এবং সি এর উভয় নির্মাণকারীকেই ডাকতে হবে।
বৈশিষ্ট্যগুলি এ সমস্যা এড়ায় যেহেতু তাদের কাছে নির্মাণকারী নেই।