بتاريخ: 9 مارس 200719 سنة comment_93578 أولاً- الطرق المجردة abstract Method: لو كان لدينا صف للحيوانات نحن نعلم أن الحيوانات لها سلوك behavior ومنها خاصية التنقل (السلوك يعني في الجافا الطريقة) فإذا أردنا تعريف صف أخر وليكن صف الطيور وهو من صف الحيوانات فالخاصية التنقل هنا مختلفة أي التنقل يتم عن طريق تحريك الأجنحة, وبالتالي تصبح الطريقة التنقل المعرفة ضمن صف الحيوانات غير فعالة بالنسبة للصف الطيور مهما تكمن الفائدة من الطرق المجردة أي أنه عندما ننشئ صف طيور (ابن) يرث من صف الحيوانات (الأب)فإنه يرث كل المواصفات للصف حيوان ويصبح للطريقة التنقل صفة محددة وهي عملية تحريك الأجنحة .وبالتالي نستطيع تعريف الطريقة المجردة كما يلي :وهي الطريقة التي ليس لها كود برمجي في الصف الأب وإنما يتم كتابة الكود الخاص بها ضمن الصف الابن (على اعتبار أن الطريقة المجردة لها صفات معينة تابعة للابن )ولتعريفها في الصف الأب نكتب )كود: public abstract method; وإن عملية كتابة الكود البرمجي للطريقة المجردة ضمنة الصف الابن هي عبارة عن implementation أي جعل الطريقة المجردة تنفيذية ضمن الابن.ملاحظة1: لا يمكن أن تكون الطريقة المجردة private .ملاحظة2:عند وراثة طريقة مجردة يجب إعادة صياغتها في الصف الابن وإلا فإن الصف سيكون غير قابل للتنفيذ.ثانياً- الصفوف المجردة abstract classes : إذا احتوى الصف على طريق مجردة واحدة على الأقل فهو صف مجرد .ويتم تعريفه بوضع كلمة الـ abstract قبله.كود: abstract class{}; ملاحظات :1- الصف المجرد هو الصف الذي لا يمكن إنشاء أغراض منه وإنما تتم وراثته حتما.2- إذا كان الصف لا يحتوي على طرق مجردة فإنه يمكننا جعله مجرد بوضع كلمة abstract قبله .3-لا يمكن أن يكون الصف كالتالي:كود: final abstract class{}; لماذا ؟ لأن كلمة الـ abstract تحتم على الصف أن يتم وراثته .أما الكلمة final فلا يمكن وراثته . وبالتالي التعريف السابق خاطئ.ما هو الصف concrete ؟هي الصفوف الحقيقية أي التي يمكن إنشاء أغراض منها ,وبالتالي الصفوف المجردة هي ليست حقيقية لعدم إمكانية إنشاء أغراض منها .ال interface : هو عبارة عن صف تكون كل الطرق فيه مجردة,وبالتالي ندعو مثل هذا الصف ب interface وبمعنى أخر هو الصف الذي يحتوي على ثوابت وطرق مجردة .ويتم تعريف الـ interface كما يلي:كود: public interface a } { ماهي الفائدة من الـ interface 1- تجبرنا على إعادة صياغة الطرق المجردة ضمن الصف الابن الذي يرث من الصف الأب. 2-نحن نعلم أن الجافا لا يوجد فيها وراثة متعددة ولكن يمكننا باستخدام الـ interface الاستعاضة عنها ما هو المنطق الذي يجعل الكلام السابق صحيح؟؟المنطق يقول بأنه بما أن الطرق الموجودة في الـ interface فارغة ونحن نعيد كتابتها في الصف الابن وبالتالي لن يحصل هناك تداخل(أي سيعرف أي الطرق لهذا الأب أو ذاك ) في حال أن الصف الابن قد ورث من أكثر من صف وستنحل العقدة الموجودة في الوراثة المتعددة. الصفوف و الطرق المجردة تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.