Gs311 cs602 polymorphism

Page 1

‫‪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‬‬


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.