ستشرح هذه المقالة استخدام وتنفيذ تجاوز الطريقة في Java.
ما هو 'تجاوز الأسلوب' في جافا؟
إذا احتوت الفئة الفرعية على طريقة مماثلة كما هو محدد في فئتها الأصلية ، فسيتم الإشارة إليها باسم ' طريقة التجاوز 'في جافا. من خلال القيام بذلك ، تدخل وظائف فئة الطفل ، أي الطريقة التي تم تجاوزها ، حيز التنفيذ.
اعتبارات 'تجاوز الطريقة' في جافا
- يجب أن تحتوي الطريقة على نفس الاسم كما في صنفها الأصلي.
- يجب أن تحتوي الطريقة على معلمة مماثلة كما في صنفها الأصلي.
- الطريقة المخصصة كـ ' أخير 'لا يمكن تجاوزه.
مثال 1: تجاوز طريقة في Java
في هذا المثال ، منهجية تجاوز الطريقة ، أي ' وظيفة يمكن القيام به عن طريق الميراث:
فصل الأبوين {
عام فارغ تظهر ( ) {
نظام . خارج . println ( 'هذا هو Linuxhint!' ) ؛
} }
فصل طفل يمتد الأبوين {
عام فارغ تظهر ( ) {
نظام . خارج . println ( 'هذه جافا!' ) ؛
} }
عام فصل مثال {
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) {
هدف الطفل = جديد طفل ( ) ؛
الهدف. تظهر ( ) ؛
} }
في العرض أعلاه ، قم بتطبيق الخطوات التالية:
- أولاً ، أنشئ فئة رئيسية (مميزة) باسم ' الأبوين '.
- ضمن هذه الفئة ، حدد وظيفة تسمى ' عرض () وعرض الرسالة المحددة في تعريفها (الوظيفة).
- بعد ذلك ، قم بإنشاء فئة فرعية (فرعية) باسم ' طفل 'وراثة' الأبوين فئة عبر ' يمتد 'الكلمة الرئيسية.
- في هذه الفئة ، يمكنك تجاوز الوظيفة المحددة ضمن فئتها الأصلية من خلال تعريفها بالاسم المتطابق ' عرض () وعرض الرسالة المذكورة.
- بشكل أساسي ، قم بإنشاء كائن للفئة الفرعية عبر ' جديد 'الكلمة الرئيسية و' طفل() ' البناء.
- أخيرًا ، استدعاء الوظيفة ' عرض () 'بالإشارة إلى الكائن الذي تم إنشاؤه. سيؤدي هذا إلى استدعاء الوظيفة المتجاوزة بدلاً من الوظيفة الافتراضية في الفئة الرئيسية.
انتاج |
في الإخراج أعلاه ، يمكن تحليل أن الوظيفة الأخيرة ، أي التي تم تجاوزها ، تدخل حيز التنفيذ.
مثال 2: استخدام الكلمة الرئيسية 'فائقة' في تجاوز الطريقة باستخدام Java
في هذا المثال بالذات ، ' ممتاز 'الكلمة الرئيسية يمكن أن تقترن لاستدعاء وظائف كل من الوضع الافتراضي ، على سبيل المثال ، الأصل والطريقة التي تم تجاوزها:
فصل الأبوين {عام فارغ تظهر ( ) {
نظام . خارج . println ( 'هذا هو Linuxhint!' ) ؛
} }
فصل طفل يمتد الأبوين {
عام فارغ تظهر ( ) {
ممتاز . تظهر ( ) ؛
نظام . خارج . println ( 'هذه جافا!' ) ؛
} }
عام فصل مثال {
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) {
هدف الطفل = جديد طفل ( ) ؛
الهدف. تظهر ( ) ؛
} }
في كتلة التعليمات البرمجية أعلاه:
- وبالمثل ، أنشئ فئة رئيسية باسم ' الأبوين 'وتجميع الوظيفة' عرض () 'فيه ، عرض الرسالة المقدمة.
- في الخطوة التالية ، أنشئ فئة فرعية باسم ' طفل 'وراثة فئة الأصل.
- ضمن هذه الفئة ، بالمثل ، تجاوز الوظيفة المتطابقة. أيضًا ، اربط ' ممتاز 'مع وظيفة لاستدعاء الافتراضي ، أي وظائف وظيفة الفئة الأصل.
- أخيرًا ، قم بإنشاء كائن من الفئة الفرعية واستدعاء الوظيفة المتجاوزة.
- الخوارزمية: سيتم التنفيذ بطريقة يتم فيها استدعاء الوظيفة التي تم تجاوزها ، و ' ممتاز 'الكلمة الأساسية ستشير إلى وظيفة الفئة الأصل. سينتج عن ذلك تسجيل وظائف كل من الفئتين الأصلية والفرعية في وقت واحد على وحدة التحكم.
انتاج |
يشير الناتج أعلاه إلى أنه يمكن إلغاء تأثير الوظيفة التي تم تجاوزها أيضًا عبر ' ممتاز 'الكلمة الرئيسية.
مثال 3: تجاوز الطريقة 'النهائية' في Java
في هذا المثال ، يمكن تخصيص دالة كـ ' أخير 'في الفصل الدراسي الأصلي وبعد ذلك تم تحليله من خلال الوصول إليه في الفصل الدراسي التابع له:
فصل الأبوين {أخير عام فارغ تظهر ( ) {
نظام . خارج . println ( 'هذا هو Linuxhint!' ) ؛
} }
فصل طفل يمتد الأبوين {
عام فارغ تظهر ( ) {
نظام . خارج . println ( 'هذه جافا!' ) ؛
} }
عام فصل مثال {
عام ثابتة فارغ رئيسي ( خيط [ ] أرجس ) {
هدف الطفل = جديد طفل ( ) ؛
الهدف. تظهر ( ) ؛
} }
وفقًا للكود المذكور أعلاه ، قم بتطبيق الخطوات الموضحة أدناه:
- إنشاء فئة الأصل ' الأبوين '.
- ضمن هذه الفئة ، قم بتخصيص الوظيفة ' عرض () ' مثل ' أخير '، كما يتضح من الكلمة الأساسية السابقة.
- الآن ، ورث الفئة الفرعية ' طفل 'من الفصل السابق الذي تمت مناقشته. هنا ، تجاوز ' أخير ”وظيفة في فئة الأصل.
- بشكل أساسي ، أنشئ كائنًا من ' طفل 'class واستدعاء الوظيفة المتجاوزة.
انتاج |
سيؤدي تنفيذ الكود أعلاه إلى تسجيل الخطأ المعروض منذ ' أخير لا يمكن تجاوز طريقة '.
خاتمة
إذا احتوت الفئة الفرعية على طريقة مشابهة كما هو محدد في صنفها الأصلي ، فإنها تتوافق مع تجاوز طريقة في Java. هذا النهج يتجاوز الطرق السابقة وينفذ الأخير. يمكن تلبية طلبات التجاوز عبر ' ممتاز ' أو ال ' أخير 'الكلمات الرئيسية بطرق مختلفة. ناقشت هذه المدونة مفهوم الطريقة المهيمنة في Java.