نعلم جميعًا أن "للثدييات أنواعًا عديدة من الأصوات"، مثل: "الزئير"، و"العواء"، و"اللحمة"، و"المواء"، وما إلى ذلك. وهذه هي تعدد أشكال الأصوات.
لذلك عندما تحتوي فئة ما على العديد من الفئات الفرعية، وتتجاوز جميع هذه الفئات الفرعية طريقة في الفئة الأصلية، عندما نضع مرجع الكائن الذي أنشأته الفئة الفرعية في كائن من الفئة الأصلية، نحصل على كائن محدث للكائن. في هذا الوقت، قد يكون للكائن الصاعد تعدد الأشكال عند استدعاء هذه الطريقة، لأن الفئات الفرعية المختلفة قد تنتج سلوكيات مختلفة عند تجاوز أساليب الفئة الأصلية.
على سبيل المثال: عندما يستدعي الكائن المتحول لأعلى من فئة الكلب طريقة "bark"، فإن السلوك الناتج هو "woof"، بينما عندما يستدعي الكائن المتحول لأعلى من فئة cat طريقة "bark"، فإن السلوك الناتج يكون "مواء" وما إلى ذلك.
تعدد الأشكال يعني أنه عندما يتم تجاوز طريقة الفئة الأصلية بواسطة فئتها الفرعية، يمكن لكل منها إنتاج سلوكها الوظيفي الخاص.
على سبيل المثال:
فئة الحيوان {voidcry(){}} فئة الكلب تمتد الحيوان {voidcry(){System.out.println(wangwang);}} فئة القطة تمتد الحيوان {voidcry(){System.out.println(miaomiao);}} publicclassMain {publicstaticvoidmain(Stringargs[]){animal;animal=new dog();animal.cry();animal=new cat();animal.cry();}}
نتائج التشغيل هي كما يلي:
wangwangmiaomiao