إذا كنت ستقوم بتمرير قيمة رقمية إلى معلمة أسلوب، فقد ترغب في أن تكون معلمة الطريقة من النوع double، بحيث يمكنك تمرير بيانات البايت، وint، والطويلة، والعائمة، والمزدوجة إلى المعلمة.
إذا كانت معلمة الطريقة من نوع الواجهة ، فيمكننا تمرير مرجع إلى مثيل أي فئة تنفذ الواجهة إلى معلمة الواجهة، ومن ثم يمكن لمعلمة الواجهة إعادة استدعاء طريقة الواجهة التي تنفذها الفئة.
على سبيل المثال:
InterfaceSpeakHello{voidspeakHello();}classChineseimplementsSpeakHello{publicvoidspeakHello(){System.out.println(اعتاد الشعب الصيني على التحيات: مرحبًا، هل أكلت؟);}}classEnglishimplementsSpeakHello{publicvoidspeakHello(){System.out.println(مخصص بريطاني) تحية: مرحبًا، الطقس جميل!);}} classKindHello{publicvoidlookHello(SpeakHellohello){// معلمة نوع الواجهة hello.speakHello();//Interface callback}} publicclassMain{publicstaticvoidmain(Stringargs[]){KindHellokindHello=newKindHello ( );kindHello.lookHello(newChinese());kindHello.lookHello(newEnglish());}}
نتائج التشغيل هي كما يلي:
اعتاد الشعب الصيني على التحيات: مرحبا، هل أكلت الشعب البريطاني اعتادوا على التحيات: مرحبا، الطقس جميل!
ملحوظة: إذا تمت إضافة عدة فئات أخرى مثل الصينية والإنجليزية إلى الملف المصدر، فلن تحتاج فئة KindHello إلى التعديل بأي شكل من الأشكال.