وراثة (حوسبة)

من ويكيبيديا، الموسوعة الحرة

في البرمجة كائنية التوجه، الوراثة (بالإنجليزية: Inheritance)‏ خاصية أساسية في اللغات البرمجية كائنية التوجه، تتمثل في إمكانية بناء صنف (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث «يرث» الصنف الجديد (المشتق، الفرعي) كل خصائص وسلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على المبرمج سوى تعريف الخصائص والسلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس.[1][2][3] الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام الشيفرة البرمجية.

أصل الكلمة[عدل]

كلمة «وراثة» مأخوذة من المفهوم الحيوي، حيث يأخذ الأبناء صفاتهم الحيوية (خارجية كانت أم داخلية) من آبائهم.

مثال[عدل]

لنفترض أننا أردنا بناء شيفرة برمجية تقوم بحساب مساحات بعض الأشكال الهندسية. نقوم هنا ببناء صنف (class) نسميه مثلا «أشكال هندسية»، نعرف فيه عددا من الخصائص (properties) والوظائف (methods) المشتركة بين الأشكال الهندسية، الاسم مثلا خاصية مشتركة بين جميع الأشكال الهندسية، فلكل شكل هندسي اسم. بعد إتمام بناء هذا الصنف نقوم ببناء أصناف جديدة تقوم بواراثة صفاتها من صنف «أشكال هندسية». بهذه الطريقة، لا حاجة لنا بتعريف الخصائص والدوال المشتركة (كخاصية الاسم) ثانية في هذه الأصناف الجديدة، بل نكتفي بتعريف الخصائص والدوال الخاصة بتلك الأصناف فحسب.

مراجع[عدل]

  1. ^ America، Pierre (1991). "Designing an object-oriented programming language with behavioural subtyping" (PDF). REX School/Workshop on the Foundations of Object-Oriented Languages. Lecture Notes in Computer Science. ج. 489. ص. 60–90. DOI:10.1007/BFb0019440. ISBN:978-3-540-53931-5. مؤرشف من الأصل (PDF) في 2019-12-16.
  2. ^ Dr. K. R. Venugopal, Rajkumar Buyya (2013). Mastering C++. Tata McGrawhill Education Private Limited. ص. 609. ISBN:9781259029943.
  3. ^ Holub، Allen (1 أغسطس 2003). "Why extends is evil". مؤرشف من الأصل في 2018-07-19. اطلع عليه بتاريخ 2015-03-10.