اذهب إلى المحتوى

السؤال

Recommended Posts

  • 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

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...