السلام عليكم ورحمة الله ..
كما هو موضح .. من السؤال ..
ما هو الفرق بين الكلمات المفتاحية التالية .
overloads , overridalbe,overrides
وما هي مواضيع الأستخدام ..
السلام عليكم ورحمة الله ..
كما هو موضح .. من السؤال ..
ما هو الفرق بين الكلمات المفتاحية التالية .
overloads , overridalbe,overrides
وما هي مواضيع الأستخدام ..
تم تعديل هذه المشاركة بواسطة crazy-man في 26 سبتمبر 2005 في 01:07
أنا هظبطلك الموضوع ده بس صبرك علي شويه ,,,
في أنتظار ان يظبط لك الامور خبيرنا العزيز حازم
اليك بعض التعريفات المختصرة
OverLoads
تعني التحميل الزائد بالعربي و تعني انه يمكنك ان تعطي مثلا لدالة معينة عدة تعريفات لنعطي مثال يكون احسن
مثلا لدينا الدالة Add تقوم بعملية جمع بين رقمين و تأخذ 2 Parametrs
Public Function Add(ByVal X As Integer, ByVal Y As Integer) As Integer Return X + Y End Function
و هذين ال Parametrs هما عبارة عن Integer ماذا لو اردنا أن تأخذ نفس الدالة معاملين من نوع Double و ترجع لنا Double!!!!
كل ما علينا هو ان نقوم بانشاء دالة بنفس الاسم لكن فقط علينا تغيير نوع معامل واحد على الاقل و يكون الكود الآخر كالتالي
Public Function Add(ByVal X As Double, ByVal Y As Double) As Double Return X + Y End Function
و طبعا الفنكشن التي ستنفذ ستنفذ على حسب المعامل الذي مررت لها
و هنا أمثلة اخرى لل OverLoading
OverRides:
تعني اعادة التعريف و طبعا هنا ندخل لل OOP و الكلاسات و الوراثة...(أنصحك بقراءة شئ حول ال OOP او حمل الفيديو الموجود في مكتبة الفيجوال بيسك.نت الذي يتحدث عن الوراثة)
المهم سأتشرح لك كأنك لديك قاعدة حول ال OOP
عندما نقوم بوراثة كلاس معين فيه مجموعة من ال Functions مثلا كلاس اسمه Human في الخاصية التالية :
Age
BirdthYear
و نريد ان نورثه لكلاس اسمه Tree
اذا في ال Base Class الدالة Age في الكلاس Human سيتم حسابها كالتالي :
Return Date.Now.Year - BirdthYear
لكن هل عمر الشجرة سيحسب هكذا !!!!!
طبعا لا كلنا نعرف ان عمر الشجرة يحسب بعدد الدوائر في جدعها
اذا يمكن ان نضيف خاصية في الكلاس Tree تسمى
Ring
ونقوم باعادة تعريف الدالة Age المورثة من الكلاس Humain و بذلك عند مناداة الدالة Age من الكلاس Human تنفذ بطريقة اما عند مناداتها من الكلاس Tree تنفذ بطريقة أخرى
و طبعا الدالة Age يجب ان تكون معلنة في الكلاس Humain كدالة Overradable
Public Overridable Function Age()
اتمنى ان اكون قد أفدتك
و السلام عليكم
انتظر .. التضبيط اخ hazzom..
ومشكور ..crazy-man ..
بالنسبة لل OOP ليست جديدة علي ..
ولكنني عندما بحث في مكتبة مايكروسوف msdn ...
عرفت ان Overridable يتم استعمالها مع الكلاس الذي يورث الخصائص
وان overrides يتم استعمالها مع الكلاس الأب..
اذا لم اخطئ....
اقتباسعرفت ان Overridable يتم استعمالها مع الكلاس الذي يورث الخصائصوان overrides يتم استعمالها مع الكلاس الأب..
ال Overridable تستخدم مع ال Base Class او الفئة الاب و ينبغى عليك ان توضح ان ال Maethod التى يمكن كتابتها مرة اخرى فى الفئة التى تورث منها Overridable
ثم فى الفئة الابن او ال Inherited Class تقوم بوضع كلمة Overrides مع ال Method التى تريد اعادة كتابتها بعد ان تورث من الفئة الاب Base Class
Technical Lead Developer
اللهم قنى شر الجهل و الجهلاء
( اقْتَرَبَ لِلنَّاسِ حِسَابُهُمْ وَهُمْ فِي غَفْلَةٍ مَّعْرِضُونَ ) {الأنبياء:1}
السلام عليكم ورحمه الله وبركاته
لقد رفعت علي موقع جزء من كتاب مركز علي overridalbe,overrides وسهل جدا للفهم لتعرف الفرق مع الامثله وهو مركز علي المصتلحين بالضيط طول الفصل
وكمان الشرح علي البوربونت ما بتاخد منك خمس دقايق للتعرف الفرق
اما overloads فشرح السابق جدا كافي وكامل للتعريف :)
الرابطه هي :
اعتقد ان الـ overloading واضحة وهي تعريف function وحدة ولكن بعدة اشكال بحسب القيم التي تعطي للمتغيرات الخاصة بها.
يعني انت عندك دالة تحسب رقمين صحيحين وتبغاها نفسها تحسب رقمين عشريين وتبغاها نفسها تجمع حرفين فعليك بتعريفها overloadin.
اما overridalbe,overrides فهذين طريقة القيام ببرمجتها يحتاج ان تقرأ وتطبق اما الفكرة هيه انك قد تحتاج ان تستدعي احد الاجراءات( function ) من اجراء اخر و قد لاتحتاجها فبهذا انت تحتاج ان تعرف الدالة الأب او التي تحتاجها او قد لاتحتاجها بانها overridalbe اما الدالة الاخرى تعرفها على انها overrides
وخليني اعطيك مثال للتوضيح, الان لو اردنا ان نعمل دالة تعطينها راتب الموظف هذه الدالة الأب ونعرفها على انها overridalbe ,طيب لو أردنا ان نحسب بدل المواصلات وهو عبارة عن نسبة ثابتة مضروبة في الراتب
فهذا يعني اننا سنحتاج ان نستدعي الدالة الأب التي تحسب الراتب ونضربها في قيمة النسبة وتعطينا بدل المواصلات فهذه الدالة نعرفها على انها overrides
طبعا نحتاج الى ان نكتب الأمر Inherites للدالة الأب من الدالة الثانية.
طبعا للمعلومية يجب ان تكون كل دالة في كلاس منفصل والله اعلم
إن شاء الله إن شاء الله تكون وصلت
طبعا هذا حسب فهمي واتمنى من الاخوان ان يقولو رايهم.
<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>
هذا الموضوع مغلق.
المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية
جارٍ التحقق من المتواجدين…