26.04.2015 Views

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

البرمجة الغرضية التوجه في دلفي

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>البرمجة</strong> <strong>الغرضية</strong> <strong>التوجه</strong> <strong>في</strong> دل<strong>في</strong><br />

عروة عيسى<br />

الوراثة والتوافق بين الأنماط<br />

:<br />

الباسكال لغة نموذجية ومثالية بشكل صارم<br />

،<br />

العكس بدون إجراء تحويل بدوال التحويل المناسبة التي تزودك دل<strong>في</strong> ا<br />

،<br />

وهذا يعني أنك لن تستطيع مثلا أن تنسب قيمة رقمية إلى قيمة نصية أو<br />

وللتبسيط فإن دل<strong>في</strong> تسمح لك <strong>في</strong> بعض الأحيان نسب نمطين مختل<strong>في</strong>ن ، <strong>في</strong> حال كان أحدهما يستوعب الآخر<br />

لاحظ أننا نستطيع نسب متحول Integer إلى متحول<br />

،<br />

Real بدون أخطاء ،،<br />

وبالطبع الحالة المعاكسة غير صحيحة<br />

مثلا<br />

.<br />

var i:integer;<br />

r:real;<br />

begin<br />

r:=i;<br />

i:=r;<br />

// ok<br />

//error!!!<br />

وهذا الإستثناء مهم <strong>في</strong> حالة أنماط الأصناف<br />

صنف ولنقل مثلا<br />

لإن الكلب حيوان<br />

End;<br />

،<br />

، Tdog<br />

فإذا قمت مثلا بتعريف صنف جديد مثل Tanimal وأشتقيت منه<br />

تستطيع عندها أن تنسب غرض من الصنف Tdog إلى متحول من الصنف<br />

، Tanimal<br />

،<br />

ولكن ليس بالضرورة أن يكون كل حيوان كلب<br />

،<br />

وبناء على ذلك العكس غير ممكن<br />

:<br />

var<br />

MyAnimal: Tanimal;<br />

MyDog: Tdog;<br />

begin<br />

MyAnimal := MyDog; // OK<br />

MyDog := MyAnimal; // error!!!<br />

٣٥

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!