هناك نوعان من تعدد الأشكال في Java: التحميل الزائد والتجاوز هو أحد نوعي تعدد الأشكال.
على سبيل المثال: عندما تطلب من شخص أن يقوم بعملية "البحث عن منطقة"، قد يسألك ما هي المنطقة التي تبحث عنها؟
تعدد الأشكال الوظيفية يعني أنه يمكن تمرير رسائل مختلفة إلى الوظائف بحيث يمكن للكائن إنتاج سلوكيات مقابلة بناءً على الرسائل المقابلة. ينعكس سلوك الكائن من خلال الأساليب الموجودة في الفصل، وبالتالي فإن تعدد أشكال السلوك هو التحميل الزائد للطرق.
قواعد بناء الجملة للتحميل الزائد للطريقة:
التحميل الزائد للطرق يعني أنه يمكن أن تكون هناك طرق متعددة بنفس الاسم في الفصل، ولكن يجب أن تكون معلمات هذه الطرق مختلفة. إما أن يكون عدد المعلمات مختلفًا، أو أن عدد المعلمات هو نفسه، ولكن يختلف نوع المعلمة المقابلة في قائمة المعلمات.
على سبيل المثال:
classPeople{floathello(inta,intb){returna+b;}floathello(longa,intb){returna-b;}doublehello(doublea,intb){returna*b;}}publicclassMain{publicstaticvoidmain(Stringargs[]){Peopletom= newPeople();System.out.println(tom.hello(10,10));System.out.println(tom.hello(10L,10));System.out.println(tom.hello(10.0,10) );}}
نتائج التشغيل هي كما يلي:
20.00.0100.0
يلاحظ:
إذا كانت هناك طريقتان لهما نفس الاسم، فيجب أن تكون المعلمات مختلفة حتى لو كانت أنواع الإرجاع مختلفة.