ہیرے کا مسئلہ اس وقت پیدا ہوتا ہے جب کوئی کلاس دو کلاسز سے وراثت لیتی ہے جن کا ایک مشترک جد ہو، جو ابہام پیدا کرتا ہے: اگر دونوں درمیانی کلاسز ایک method کو override کریں (یا کوئی field رکھیں)، تو نچلی کلاس کو کون سا ورژن ملے گا؟
ہیرے کی شکل
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
Python میں (جو متعدد وراثت کی اجازت دیتا ہے)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
