Masalah berlian timbul apabila kelas mewarisi daripada dua kelas yang berkongsi nenek moyang bersama, menciptakan keambiguan: jika kedua-dua kelas tengah mengatasi kaedah (atau memegang medan), versi mana yang diperoleh kelas bawah?
Berlian
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
Dalam Python (yang membenarkan warisan berbilang)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
