ما هي الوظيفة الافتراضية في جافا؟



تتناول هذه المقالة مفهوم الوظيفة الافتراضية في جافا مع تطبيقاتها في تعدد الأشكال واستدعاء الوظائف في وقت التشغيل مع أمثلة.

جافا هو ملف الذي يدعم مفاهيم مثل تعدد الأشكال ، والوراثة ، والتجريد ، وما إلى ذلك. تدور مفاهيم OOPs هذه حولها الطبقات ، شاء ، ووظائف الأعضاء. الوظيفة الافتراضية هي أحد هذه المفاهيم التي تساعد في تعدد الأشكال في وقت التشغيل. في هذه المدونة ، سنتعرف على الوظيفة الافتراضية بتنسيق . المواضيع التالية تناقش في هذه المقالة.

ما هي الوظيفة الافتراضية في جافا؟

يمكن أن يكون سلوك الوظيفة الافتراضية تم تجاوزها مع وظيفة الفئة الوراثية بنفس الاسم. يتم تعريفه بشكل أساسي في الفئة الأساسية ويتم تجاوزه في الفئة الموروثة.





من المتوقع أن يتم تعريف الوظيفة الافتراضية في Java في ملف . يمكننا استدعاء الوظيفة الافتراضية بالإشارة إلى كائن الفئة المشتقة باستخدام مرجع أو مؤشر الفئة الأساسية.

كل طريقة غير ثابتة في Java هي افتراضيًا طريقة افتراضية. جافا ليس لديها كلمة رئيسية افتراضية مثل C ++ ، ولكن يمكننا تعريفها واستخدامها لمفاهيم مثل تعدد الأشكال وقت التشغيل.



مثال الوظيفة الافتراضية

دعنا نلقي نظرة على مثال لفهم كيف يمكننا استخدام الوظائف الافتراضية في جافا.

فئة مركبة {void make () {System.out.println ('Heavy duty')}} شاحنات من الفئة العامة توسع نطاق المركبات {void make () {System.out.println ('Transport vehicle for Heavy duty')} فراغ ثابت عام main (String args []) {Vehicle ob1 = new Trucks () ob1.make ()}}
 انتاج: مركبة نقل للخدمة الشاقة

كل طريقة غير ثابتة في Java هي وظيفة افتراضية باستثناء نهائي و الطرق الخاصة . الطرق التي لا يمكن استخدامها لتعدد الأشكال لا تعتبر وظيفة افتراضية.

الفرق بين git و github

إلى لا تعتبر وظيفة افتراضية لأن الطريقة الثابتة مرتبطة بالفئة نفسها. لذلك لا يمكننا استدعاء الطريقة الثابتة من اسم الكائن أو فئة لـ . حتى عندما نتجاوز الطريقة الثابتة ، فإنها لا تتوافق مع مفهوم تعدد الأشكال.



وظيفة افتراضية مع واجهات

جميع واجهات Java افتراضية ، وتعتمد على فئات التنفيذ لتوفير عمليات تنفيذ الطريقة. يتم تحديد رمز التنفيذ في وقت التشغيل. هنا مثال بسيط لفهم أفضل.

واجهة السيارة {void applicationBrakes ()} واجهة Audi تنفذ Car {void applicationBrakes () {System.out.println ('breaks Applied')}}

هنا applicationBreaks () هي افتراضية لأن الوظائف في الواجهات مصممة بحيث يتم تجاوزها.

كيفية استخدام goto c ++

وظيفة افتراضية خالصة

الوظيفة الافتراضية البحتة هي وظيفة افتراضية ليس لدينا تطبيقات لها. يمكن اعتبار الطريقة المجردة في Java وظيفة افتراضية خالصة. لنأخذ مثالاً لفهم هذا بشكل أفضل.

فئة مجردة Dog {Final void bark () {System.out.println ('woof')} abstract void jump () // this is a pure virtual function} class MyDog extends Dog {void jump () {System.out.println ('Jumps in the air')}} عداء فئة عامة {public static void main (String args []) {Dog ob1 = new MyDog () ob1.jump ()}}
 انتاج: يقفز في الهواء

هذه هي الطريقة التي يمكن بها استخدام الوظيفة الافتراضية مع فئة مجردة.

تعدد الأشكال وقت التشغيل

تعدد الأشكال وقت التشغيل هو عندما يتم حل استدعاء طريقة تم تجاوزها في وقت التشغيل بدلاً من وقت الترجمة . يتم استدعاء الطريقة التي تم تجاوزها من خلال المتغير المرجعي للفئة الأساسية.

class Edureka {public void show () {System.out.println ('مرحبًا بك في edureka')}} الدورة التدريبية تمتد Edureka {public void show () {System.out.println ('Java Certification Program')} public static void main (سلسلة args []) {Edureka ob1 = دورة جديدة () ob1.show ()}}
 انتاج: دورة شهادة جافا

نقطة لنتذكر

  • بالنسبة لوظيفة افتراضية في Java ، لا تحتاج إلى تصريح صريح. إنه أي التي لدينا في فئة أساسية وأعيد تعريفها في الفئة المشتقة بنفس الاسم.

  • يمكن استخدام مؤشر الفئة الأساسية للإشارة إلى كائن الفئة المشتقة.

  • أثناء تنفيذ البرنامج ، يتم استخدام مؤشر الفئة الأساسية لاستدعاء وظائف الفئة المشتقة.

    ما هو الفرق بين التحميل الزائد والتجاوز

يقودنا هذا إلى نهاية هذه المقالة حيث تعلمنا عن الوظيفة الافتراضية في Java. آمل أن تكون واضحًا بشأن كل ما تمت مشاركته معك في هذا البرنامج التعليمي.

إذا وجدت هذه المقالة حول 'الوظيفة الافتراضية في Java' ذات صلة ، فراجع ملف شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرة في جميع أنحاء العالم.

نحن هنا لمساعدتك في كل خطوة في رحلتك والتوصل إلى منهج مصمم للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطور جافا. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد مثل بيات شتوى & .

إذا صادفت أي أسئلة ، فلا تتردد في طرح جميع أسئلتك في قسم التعليقات في 'Virtual Function In Java' وسيسعد فريقنا بالإجابة.