ماهو cast objects في الجافا ؟

  • naifaldagal

السلام عليكم ,

انا اعلم ماهو الـ casting العادي مثل تحويل double الى int وغيرها ..

لكن مالا اعلمه ولا افهمه هو عمل cast للأوبجكيت ! رأيت في احدى شروحات الجافا شخص قام بعمل سوبر كلاس وكلاس اخر موروث منه

بهذا الشكل :

superclass object = (supercalss)inhertclass;

لم افهم هذا السطر البرمج

سؤال اخر ماذا يعني هذا الكود عند عمل ابوجكت بهذا الشكل

Measurable obj = new BankAccount();

Measurable is super class

BankAccount is inhertclass

افيدوني بارك الله فيكم

واعتذر عن الأخطاء لأني مبتدئ في البرمجة

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

لمعرفة الجواب تفضل بمشاهدة دورة java 103 للاستاذ عبدالله عيد ففيها شرح بتفصيل ممل جدا عن سؤالك وافضل دورة للاساسيات من نظرى هى دورة الاستاذ عبدالله فقد كنت حائرا عند رغبتى فى البداية فى جافا ولكننى استفدت كثيرا من الاستاذ عبدالله فهو تقريبا افضل من قدم دورة فى اساسيات جافا(وجهة نظر شخصية)

ولكن كاجابة مبداية :

السؤال الاول : اذا كنت تستخدم دالة مثلا ترجع اوبجكت من سوبر كلاس محدد وتعلم انه مهما حدث عند استخدامك للدالة فى موضع محدد فسترجع هذه الدالة اوبجت من كلاس1 يرث السوبر كلاس وليس اى كلاس اخر فيمكنك عند استدعائها عمل cast للاوبجكت الى نوع كلاس 1 لاستخدامه فى موضع لا يمكنك فيه استخدام الاوبجكت الخاص ب السوبر ولكن يمكنك فيه استخدام الاوبجكت الخاص ب كلاس1 . اتمنى ان تكون قد اخذت فكرة ولكن يجب ان تراجع الامر فى احد الدورات لاى استاذ تفضله

السؤال الثانى : عند عملك وراثه فان الاوبجكت الوارث يقوم اول شى باستدعاء دالة السوبر وبعد ذلك ينفذ الكونستراكتور الخاص به ففى السؤال كان يجب ان يكون الكود كالتالى :

Measurable obj = new Measurable();

وفى هذه الحالة يتحقق الكلام فى الاعلى حيث يستدعى الكونستراكتور الخاص ب BankAccount ثم الخاص ب Measurable اذا كان Measurable يرث BankAccount كما ذكرت .

ولكن اذا كتب الكود بالشكل التالى :

Measurable obj = new BankAccount();

فانه يتم استدعاء الكونستراكتور الخاص بالسوبر BankAccount ولا يتم استدعاء الكونستراكتور الخاص بالكلاس Measurable واذا كنت تعلم ما هى الوراثة ف بالتاكيد تعلم انه يجب استدعاء كونستراكتور السوبر ولكن استدعاء كونستراكوتر الكلاس الوارث غير مهم ولن يحدث خطا اذا لم تقم باستدعائه. اتمنى الفكرة وضحت .

كان الله فى عونك.

جزاك الله خير اخي الكريم وفي ميزان حسناتك افدتني جداً

العفو اخى يمكنك مراسلتى اذا اردت الاستفسار عن اى شى بخصوص جافا (ملحوظه انا مازلت مبتدا ولكن يمكننا مساعدة بعضنا لنصل الى الاحتراف باذن الله)