اقرأ في هذا المقال
مفهوم الـ Overriding في لغة البرمجة جافا
تدعم لغة البرمجة جافا (Java) كغيرها من لغات البرمجة مفهوم ال (Overriding)، والذي يعني تعريف الدالة التي ورثها الكلاس المشتق (Subclass) من الكلاس الرئيسي (Superclass)، بحيث أن هذه الدالة الجديدة تكون مشابهة للدالة الموروثة من حيث الشكل فقط، أي أن لها نفس الاسم والنوع وعدد ال (Parameters) ولكن في الحقيقة محتواها مختلف، والهدف الرئيسي من هذا المفهوم هو إتاحة المجال للـكلاس المشتق ليعرف الدوال حسب حاجته.
شروط تنفيذ الـ Overriding للدوال في لغة البرمجة جافا
- يجب أن تكون محددات الوصول ال (Modifiers ) التي تم استخدامها مع الدالة الجديدة هي نفسها المستخدمة للدالة القديمة، ويجب أن يكون نوعه (public) أو (protected).
- يجب أن يكون عدد ونوع ال (Parameters) الخاصة بالدالة الجديدة مطابق لعدد ونوع الباراميترات الخاصة بالدالة القديمة.
- يجب أن يكون نوع الإرجاع الخاص بالدالة الجديدة أن يكون نفس نوع الإرجاع للدالة القديمة.
- الدالة المعرفة من نوع (private) لا يمكن أن نطبق عليها مفهوم ال (Override)، لأن النوع
(private) يمنع إمكانية الوصول المباشر للدالة من الـكلاس المشتق (Subclass).
- الدالة المعرفة من نوع (final) لا يمكن أن نطبق عليها مفهوم ال (Override) وذلك لأن النوع (final) يمنع تغيير محتوى الدالة بعد أن يتم تعريفها.
- الدالة المعرفة من نوع (static) لا يمكن أن نطبق عليها مفهوم ال (Override)، ولكن يمكن تعريفها من جديد في أي مكان، وذلك لأن النوع (static) يجعل الدالة مشتركة بين جميع الكلاسات.
- لا يمكن أن نطبق مفهوم ال (Override) للكونستركتورات.
وفيما يلي مثال على استخدام مفهوم ال (Overriding) في لغة البرمجة جافا:
publicclass Country {publicvoidlanguage(){ } } public class Australia extends Country { } public class jordan extends Country { public void language () { system. out.println( "Arabic"); } }
هنا تم تعريف كلاس اسمه (Country) والذي يحتوي على دالة اسمها (()language)، وتم بتعريف أيضاً كلاسات أخرى، حيث أنها ترث من الكلاس (Country)، إذاً كلها سوف تحتوي على الدالة (()language)، هنا الفكرة أن أي كلاس يرث من الكلاس (Country) سوف يضطر إلى تعريف الدالة (()language) من جديد حتى تناسبه.