السلام عليكم ورحمة الله وبركاته
دائما اتسأل ماهي الفائدة من اضافة خاصية abstract للكلاس
ولا استطيع استخدام دوالها حتى
من ترجمة المصطلح وهو مجرد أي أن الفئة مجردة من عملها الوظيفي
تستخدم لتعريف النمط المراد اتباعه في الفئات بشكل اجباري
بمعنى أن الفئة المجردة تكون بمثابة خطوط حمراء يجب مراعاتها عند كتابة الفئات التي ترث الفئات المجردة
فلنأخذ مثال:
لدينا فئه مجردة باسم banq سنعرف داخلها طريقتين مجردتين هما ايداع deposit واخرى withdrowal سحب.
هذه الفئة سيتم وراثتها من عده بنوك وكل البنوك تحتوي على خواص السحب والإيداع ولكن بنسب عمولة مختلفة من بنك لأخر وعليه سيتم إجبار استخدام طريقة السحب والإيداع بنفس الاسماء والتعريف الموجود في الفئة المجردة لإجبار استخدام هذا الشكل لجميع الفئات التي ترث الفئة المجردة banq.
الفائدة من ذلك هو دعم مفهوم polymorphism
والذي يعني استخدام أشكال عديدة من method واحدة .
أيضاً هو يستخدم ك place holder للدوال التي سيتم تعريفها بشكل كامل بوقت لاحق .
ولا استطيع استخدام دوالها حتى
انت تستطيع استخدام (abstract methods)في derived classes of abstract base class
بشرط اعطائها تعريفات مختلفة في كل من الكلاسات المتوارثة. وذلك يوفر الوقت والجهد لتكرار الكتابة .
مثلاً انت تريد حساب المساحة للأشكال الهندسية تستطيع ان تعرف :
} Public abstract class Shape
Public abstract double area
{;{}
يمكنك بسهوله الاستفاده من هذا الكلاس وجميع دواله بعد عملية التوارث وإعطاء الدوال التي ستحتاجها التعريفات اللازمة بحساب مساحة الدائرة ،المثلث ،المربع ...وغيرها
التعليقات