مفهوم الـ Overriding في لغة البرمجة جافا

تدعم لغة البرمجة جافا (Java) كغيرها من لغات البرمجة مفهوم ال (Overriding)، والذي يعني تعريف الدالة التي ورثها الكلاس المشتق (Subclass) من الكلاس الرئيسي (Superclass)، بحيث أن هذه الدالة الجديدة تكون مشابهة للدالة الموروثة من حيث الشكل فقط، أي أن لها نفس الاسم والنوع وعدد ال (Parameters) ولكن في الحقيقة محتواها مختلف، والهدف الرئيسي من هذا المفهوم هو إتاحة المجال للـكلاس المشتق ليعرف الدوال حسب حاجته.

شروط تنفيذ الـ Overriding للدوال في لغة البرمجة جافا

  • يجب أن تكون محددات الوصول ال (Modifiers ) التي تم استخدامها مع الدالة الجديدة هي نفسها المستخدمة للدالة القديمة، ويجب أن يكون نوعه (public) أو (protected).
  • يجب أن يكون عدد ونوع ال (Parameters) الخاصة بالدالة الجديدة مطابق لعدد ونوع الباراميترات الخاصة بالدالة القديمة.  
  • يجب أن يكون نوع الإرجاع الخاص بالدالة الجديدة أن يكون نفس نوع الإرجاع للدالة القديمة.
  • الدالة المعرفة من نوع (private) لا يمكن أن نطبق عليها مفهوم ال (Override)، لأن النوع (private) يمنع إمكانية الوصول المباشر للدالة من الـكلاس المشتق (Subclass).
  • الدالة المعرفة من نوع (final) لا يمكن أن نطبق عليها مفهوم ال (Override) وذلك لأن النوع (final) يمنع تغيير محتوى الدالة بعد أن يتم تعريفها.
  • الدالة المعرفة من نوع (static) لا يمكن أن نطبق عليها مفهوم ال (Override)، ولكن يمكن تعريفها من جديد في أي مكان، وذلك لأن النوع (static) يجعل الدالة مشتركة بين جميع الكلاسات.
  • لا يمكن أن نطبق مفهوم ال (Override) للكونستركتورات.

وفيما يلي مثال على استخدام مفهوم ال (Overriding) في لغة البرمجة جافا:

هنا تم تعريف كلاس اسمه (Country) والذي يحتوي على دالة اسمها (()language)، وتم بتعريف أيضاً كلاسات أخرى، حيث أنها ترث من الكلاس (Country)، إذاً كلها سوف تحتوي على الدالة (()language)، هنا الفكرة أن أي كلاس يرث من الكلاس (Country) سوف يضطر إلى تعريف الدالة (()language) من جديد حتى تناسبه.

شاهد أيضاً

ما هي لغة دارت Dart

معظم تطبيقات اﻷندرويد المستخدمة اليوم مبنية على لغة جافا رغم توافر لغات برمجية أخرى مثل Apache Cordova …

اترك تعليقاً