• 0

ماذا تعني final في جافا؟

ما الذي تقوم به الكلمة المفتاحية final عند وضعها قبل تعريف الدالة أو الصف class؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

تستخدم الكلمة المفتاحية final لجعل المتغيرات ثابتة constant أي لا يمكن تغيير قيمتها بعد إعطائها قيمة أول مرة.

يمكن إعطاء قيمة للمتغير الثابت final أثناء تعريفه أو في الـconstructor.

يمكن أيضًا استخدام الكلمة المفتاحية final مع الدوال methods لحمايتها من عملية إعادة التعريف overriding (في جافا لا يمكنك عمل override لدالة ثابتة final method).

تستعمل الكلمة المفتاحية final أيضًا مع الصفوف classes وذلك لجعلها غير قابلة للوراثة من قبل صفوف أخرى (في جافا لا يمكن الوراثة من صف ثابت final class)،.

متى نكون بحاجة لعمل صف ثابت final class؟

في حال كنا لا نرغب بوراثة أي من الدوال أو المتغيرات في الصف، أي لا نرغب بالتعديل عليها أو إعادة استخدامها. لنقم بإنشاء صف ثابت ونقوم بالوراثة منه ونرى ما سيحدث:

final class Father {
 public final void getSurname(){
 System.out.println("Sorry son, you cannot change your surname");
 }
 }

 class Son extends Father {
 }

عند القيام بعملية ترجمة compile لهذين الصفين سيظهر خطأ في الترجمة Compile Time Error "The Type Son cannot subclass the final class Father"

final.thumb.png.c66f64d4f7a68494d08dbf25

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن