الانتقال إلى المحتوى الرئيسي

تجاوز: وصف مفصل وجوهر المفهوم

التجاوز هو مفهوم يستخدم في البرمجة لتغيير سلوك أو تنفيذ طرق الفصل في فئة موروثة. عندما تحدد فئة موروثة طريقة بنفس اسم الفئة الأصل ، تتجاوز هذه الطريقة طريقة الفئة الأصل.

غالبا ما تستخدم إعادة تعريف الطريقة في البرمجة الشيئية لتنفيذ تعدد الأشكال. هذا يعني أنه يمكننا استخدام نفس الرمز للعمل مع أنواع مختلفة من الكائنات ، بشرط أن تشترك في فئة أصل مشتركة.

من المهم ملاحظة أنه عند إعادة تعريف طريقة في فئة موروثة ، يمكننا تغيير تنفيذها ، مع الاحتفاظ بتوقيعها (اسم الطريقة والمعلمات).

عندما يريد مبرمج لتغيير سلوك طريقة في فئة الموروثة ، وقال انه يمكن استخدام الكلمة تجاوز. يسمح لك هذا بتحديد أن الطريقة في فئة موروثة هي طريقة تم تجاوزها ، ويسمح للمترجم باستخدام الإصدار الصحيح من الطريقة أثناء تنفيذ البرنامج.

  1. وصف تجاوز
  2. جوهر التجاوز هو البرمجة
  3. آلية التجاوز في البرمجة الشيئية
  4. سؤال وجواب
  5. ما هو جوهر مفهوم "تجاوز"?
  6. لماذا أحتاج إلى استخدام "تجاوز"? ما هي المزايا التي لا توفر?
  7. كيف يمكنني تحديد طريقة في فئة مشتقة تتجاوز الطريقة الأم?
  8. هل من الممكن تجاوز أسلوب أعلن مع" خاص " معدل?
  9. هل من الممكن تجاوز طريقة ثابتة?
  10. ما هو الفرق بين "تجاوز "و"جديد"?

وصف تجاوز

التجاوز هو آلية متوفرة في البرمجة الشيئية التي تسمح لفئة سليل بتجاوز طريقة موروثة من فئتها الأصلية. يسمح هذا للفئة السليلة بتغيير سلوك الطريقة وفقا لمتطلباتها ومواصفاتها دون تغيير رمز الفئة الأصل.

عندما ترث فئة طريقة من فئتها الأصلية ، يمكنها استخدامها افتراضيا أو ، إذا لزم الأمر ، تجاوزها وتوفير التنفيذ الخاص بها. في هذه الحالة ، يجب أن يكون لطريقة التجاوز في الكود اللاحق نفس التوقيع (الاسم والمعلمات) تماما مثل الطريقة التي يتم تجاوزها.

تعمل إعادة تعريف الطريقة على تحسين مرونة وقابلية توسيع رمز البرنامج ، حيث تتيح لك إجراء تغييرات على سلوك الطريقة دون الحاجة إلى إجراء تغييرات على رمز الفئة الأصلية. كما أنه يساهم في تحقيق مبدأ "الانفتاح على التوسع ، والقرب من التغيير" ، وهو أحد مبادئ الصلبة.

في لغات البرمجة مثل جافا و ج# ، يتم استخدام الكلمة الرئيسية "تجاوز" لتجاوز طريقة. تخبر هذه الكلمة الرئيسية المترجم أنه يجب تجاوز الطريقة ولا تكون منطقية إلا في سياق الميراث وإعادة التعريف.

عند إعادة تعريف طريقة ما ، من المهم أن تضع في اعتبارك أنها ترث معدلات الوصول من الفئة الأصلية. هذا يعني أنه إذا كانت طريقة الفئة الأصل تحتوي على معدل وصول "محمي" ، فيجب أن تحتوي طريقة التجاوز في الوريث أيضا على معدل وصول "محمي" أو أكثر انفتاحا ، ولكن ليس أكثر إغلاقا.

من المهم أيضا أن تضع في اعتبارك أنه باستخدام تعدد الأشكال ، يمكنك استدعاء طريقة تم تجاوزها من خلال مثيل فئة سليل ، وسيتم استدعاء طريقة التجاوز ، وليس طريقة الفئة الأصل.

جوهر التجاوز هو البرمجة

التجاوز هو مفهوم يستخدم في البرمجة الشيئية التي تسمح لفئة سليل بتغيير أو استكمال سلوك طريقة موروثة من فئتها الأصلية.

عندما يرث الفصل طرقا من فصل آخر ، يمكنه استخدامها ، ولكن في بعض الأحيان قد لا تكون الطريقة الأصلية مناسبة بما يكفي لاحتياجات الوريث. في هذه الحالة ، باستخدام التجاوز ، من الممكن تجاوز الطريقة في الوريث بحيث تتصرف بشكل مختلف عن الفئة الأصلية.

يتم إعادة تعريف الطريقة عن طريق كتابة تطبيق جديد للطريقة في فئة سليل بنفس اسم الفئة الأصل. عند استدعاء طريقة من كائن من فئة سليل ، سيتم تنفيذ تنفيذ جديد ، وليس تنفيذ من الفئة الأصل.

تعد إعادة تعريف الطريقة أداة قوية تسمح لك بتغيير سلوك البرنامج اعتمادا على موقف معين. انها تسمح لك لتحسين وتكييف التعليمات البرمجية ، مما يجعلها أكثر مرونة وحدات. بفضل التجاوز ، يمكن استخدام آلية تعدد الأشكال ، حيث يمكن أن يكون للفئات المختلفة من نفس الواجهة تطبيقات مختلفة لنفس الطريقة.

عند إعادة تعريف طريقة ما ، من المهم أن تضع في اعتبارك أن التنفيذ الجديد للطريقة يجب أن يحافظ على دلالات وتوقعات وواجهة الفئة الأصلية. إذا كانت الطريقة في الفئة الأصل لها قيمة إرجاع ، فيجب استخدام نفس قيمة الإرجاع أو نوعها الفرعي في الوريث. يجب عليك أيضا التفكير في إمكانية استدعاء التنفيذ الرئيسي للطريقة بطريقة تم تجاوزها باستخدام الكلمة الرئيسية الفائقة.

في الختام ، تتيح لك إعادة تعريف الأساليب في البرمجة تغيير سلوك البرنامج بمرونة ، مما يجعل الشفرة أكثر معيارية وقابلة للتكيف. يساعد الاستخدام السليم للتجاوز على جعل الكود مفهوما وفعالا ، فضلا عن تعزيز تطبيق مبادئ الميراث وتعدد الأشكال.

آلية التجاوز في البرمجة الشيئية

تعد آلية التجاوز جزءا مهما من البرمجة الشيئية. يسمح للفئات الفرعية بتجاوز طرق الفئة الأصل عن طريق تغيير سلوكها أو تنفيذها.

عندما يرث فئة فئة أخرى ، فإنه يحصل على جميع خصائص وأساليب الطبقة الأم. ومع ذلك ، في بعض الأحيان يكون مطلوبا أن يكون للطرق في الفئة اللاحقة تنفيذ مختلف أو تتصرف بشكل مختلف. في مثل هذه الحالات ، يتم استخدام آلية التجاوز.

من أجل تجاوز طريقة الفئة الأصل ، يجب إنشاء طريقة بنفس الاسم والتوقيع في فئة سليل. عندما يتم استدعاء هذه الطريقة على كائن من فئة سليل ، سيتم تنفيذ تنفيذه ، وليس التنفيذ من الفئة الأصل.

عند استخدام آلية التجاوز ، من المهم أن تتذكر أن طرق الفئة الأصلية تظل متاحة ويمكن استدعاؤها في الفئة اللاحقة باستخدام الكلمة الرئيسية الفائقة. وبالتالي ، يسمح لك التجاوز ليس فقط بتغيير سلوك الأساليب ، ولكن أيضا لاستكمال وظائفها.

واحدة من المبادئ الأساسية ل أوب ، تعدد الأشكال ، يرتبط ارتباطا وثيقا آلية تجاوز. يتيح لك تعدد الأشكال استخدام كائنات من فئات مختلفة تنفذ نفس الواجهة مثل نوع بيانات واحد. بفضل آلية التجاوز ، من الممكن تحقيق سلوك كائن مختلف عند استدعاء نفس طريقة الواجهة.

جانب آخر مهم لآلية التجاوز هو القدرة على استخدام الفئات الفرعية بدلا من الفئات الأصلية عند العمل مع التعليمات البرمجية. هذا يسمح لك بإنشاء بنية برنامج أكثر مرونة وقابلة للتوسيع.

بشكل عام ، تعد آلية التجاوز عنصرا أساسيا في البرمجة الشيئية التي تسمح لك بالتحكم في سلوك الأساليب في عملية وراثة الفصل. يسمح لك بإنشاء كود أكثر مرونة وقابلية للتطوير ، ويساهم أيضا في تطوير تعدد الأشكال وقابلية التوسع لمشروع البرنامج.

سؤال وجواب

ما هو جوهر مفهوم "تجاوز"?

جوهر مفهوم" التجاوز " هو القدرة على استبدال تنفيذ طريقة من فئة أساسية في فئة مشتقة.

لماذا أحتاج إلى استخدام "تجاوز"? ما هي المزايا التي لا توفر?

يسمح لك التجاوز بتغيير سلوك الطرق الموروثة ، وإضافة وظائف جديدة ، ويوفر أيضا إمكانية تعدد الأشكال — يمكن استخدام كائن من فئة مشتقة أينما كان من المتوقع وجود كائن من الفئة الأساسية.

كيف يمكنني تحديد طريقة في فئة مشتقة تتجاوز الطريقة الأم?

لتحديد طريقة تتجاوز طريقة من فئة أساسية ، استخدم الكلمة الأساسية" تجاوز " قبل الإعلان عن الطريقة في الفئة المشتقة.

هل من الممكن تجاوز أسلوب أعلن مع" خاص " معدل?

لا ، لا يمكن تجاوز الطريقة التي تحتوي على المعدل "الخاص" ، لأنها متوفرة فقط داخل الفئة التي تم الإعلان عنها فيها.

هل من الممكن تجاوز طريقة ثابتة?

لا ، لا يمكن تجاوز الطريقة الثابتة. إنه ينتمي إلى الفصل ، وليس الكائن ، ويتصرف بنفس الطريقة لجميع مثيلات الفصل.

ما هو الفرق بين "تجاوز "و"جديد"?

يتم استخدام الكلمة الأساسية "تجاوز" لاستبدال تنفيذ طريقة من الفئة الأساسية ، بينما ينشئ "جديد" تطبيقا جديدا للطريقة ويخفي التنفيذ من الفئة الأساسية. عند استخدام" جديد " ، لا يمكن إرسال كائن من الفئة الأساسية إلى نوع الفئة المشتقة بدون تلبيس صريح.