ปัญหาเพชรคือการไม่สามารถตัดสินใจได้ว่าจะเลือกใช้วิธีใด สกาล่าแก้ปัญหานี้โดยกำหนดว่าการใช้งานแบบใดเพื่อเลือกเป็นส่วนหนึ่งของข้อกำหนดภาษา ( อ่านส่วนที่เกี่ยวกับสกาล่าในบทความ Wikipedia นี้ )
แน่นอนคำสั่งคำสั่งเดียวกันสามารถใช้ในการสืบทอดหลายคลาสได้ดังนั้นทำไมต้องกังวลกับคุณสมบัติ?
เหตุผลที่ IMO เป็นตัวสร้าง ตัวสร้างมีข้อ จำกัด หลายอย่างที่วิธีการปกติไม่มี - พวกเขาสามารถเรียกได้เพียงครั้งเดียวต่อวัตถุพวกเขาจะต้องถูกเรียกสำหรับวัตถุใหม่แต่ละชิ้นและตัวสร้างคลาสลูกต้องเรียกว่าเป็นตัวสร้างของผู้ปกครองเนื่องจากเป็นคำสั่งแรก (ภาษาส่วนใหญ่จะ ทำโดยปริยายสำหรับคุณหากคุณไม่ต้องการส่งพารามิเตอร์)
ถ้า B และ C สืบทอด A และ D รับ B และ C และทั้ง B และ C เรียก C ของคอนสตรัคเตอร์ A และ B ของ C จะเรียกคอนสตรัคเตอร์ของ A สองครั้ง การกำหนดว่าการใช้งานแบบใดให้เลือกเช่น Scala ที่ทำกับวิธีการจะไม่ทำงานที่นี่เพราะทั้งสองอย่าง B และ C จะต้องถูกเรียก
ลักษณะหลีกเลี่ยงปัญหานี้เนื่องจากไม่มีตัวสร้าง