
الوراثة المتعددة multi inheritance في Dart
تعني عندما ترث فئة من فئات متعددة أو بمعنى أصح أن يرث الكلاس من أكثر من كلاس.
الوراثة متعددة المستويات في dart هي عندما ترث الكلاسات المختلفة في شكل سلسلة أي أن أحد الكلاسات يمتد إلى كلاسات الأصل بينما يمتد الكلاس الآخر إلى الكلاسات التي كانت توسع الكلاسات الأصلية.
الشكل العام للوراثة متعددة المستويات
class A {} class B extends A {} class C extends B {}
لاحظنا بناء الجملة يمكننا أن نرى بوضوح أن الكلاس A هو الكلاس الأصلي للكلاس B و التي تعمل على توسيعها أيضاً تعمل الكلاس B كوالد للكلاس C و التي تمتد إلى الكلاس B.
مثال
class Wood{ void printName(){ print("Inside class Wood"); } } class Table extends Wood{ void printTable(){ print("Inside Table class"); } } class TableLegs extends Table{ void printTableLegs(){ print("Inside TableLegs class"); } } void main(){ TableLegs tl = new TableLegs(); tl.printTableLegs(); tl.printTable(); tl.printName(); }
في المثال أعلاه لدينا ثلاث كلاسات مختلفة وهي Wood و Table و TableLegs و داخل الدالة الرئيسية نقوم بإنشاء كائن من الكلاس TableLegs ثم إستدعاء ميثود الكلاس الأصلية التي يمتد إليها الكلاس.
عند تشغيل الكود ستكون النتيجة
Inside TableLegs class Inside Table class Inside class Wood