GS311-CS02 Java Lab تعدد الكشكال polymorphism ا ت يمكن لدالة ما أن تؤدي اكثر من وظيفة وفقا لمسعم الكععائن الععذي يمسععتدعيها .هعذه العمليعة تمسععمى بتععدد الكشكال .polymorphism بما ان كل كائن من subclassهو كائن من ،superclassأذن :يمكن أن يكون هناك عدد كبير من الكائنات objectsالتنوعة )كل كائن من subclassمختلفة( تنتمي الى نفس .superclass
يمكن ان تشير متغيرة objectمن نوع superclassالى كائن من نوع .subclass
بمع ععا ان كع ععل objectم ن subclassيمك ن التعام ل مع ه عل ى ان ه objectم ن ،superclassإذن: يمك ععن وض ععع ه ععذه الكائن ععات الختلف ععة م ععع بعض ععها البع ععض )مص ععفوفة م ععن ن ععوع (superclassبحي ععث يدل كل عنصر فيها على كائن ما داخل الصفوفة من subclassesالتي ترث من هذه .superclass إذن ،يمكن لتغير معن نعوع ) superclassامسم الصفوفة( أن يحتوي )او يشير الى ( أكثر من نوع من كائنات من subclassesمختلفة ،هذا التغير حيئذ تيمسمى بمتغير متعدد الكشكال.
كما يمكعن لدالعة معا ان تقعوم بععدة مهعام مختلفعة حمسب نعوع الكعائن العذي يمسعتدعيها ،و تمسمى هععذه الدالة حيئذ بدالة متعددة الكشكال.
ملحظات: .1تتععم عمليععة تخصععيص الكععائن لتغيععر كععائن آخععر مععن نععوع superclassاثناء زمن التنفيذ ،و ليس عند عملية الترجمة ).(compilation .2بامس ععتخدام ال ععدوال ،overridingيمك ن التعام ل م ع التغي رات الخاص ة الص رح به ا داخ ل ال .superclass .3نوع الكائن هو الذي يحدد الدالة الراد امستدعائها. **مسؤال الحاضرة أكتععب برنامععج بلغععة الجافععا يحععاكي حركععة حيوانععات )امسععد بععري ،حمامععة طععائر ،مسععمك المسععردين( ليحمسععب المسافة التي يقطعها كل حيوان في زمن قدره ن ،ثم يعرض بيانات كعل حيعوان و المسعافة القطوععة ،معع ا خصم حجم الحيوان من أجمالي المسافة )ممستخدما تعدد الكشكال .(polymorphism