وراثة (حوسبة): الفرق بين النسختين

من ويكيبيديا، الموسوعة الحرة
[نسخة منشورة][نسخة منشورة]
تم حذف المحتوى تمت إضافة المحتوى
JarBot (نقاش | مساهمات)
ط بوت:تدقيق إملائي (تجريبي)
JarBot (نقاش | مساهمات)
ط بوت:إضافة مصدر من ويكي الإنجليزية أو الفرنسية (تجريبي)
سطر 1: سطر 1:
في ال[[برمجة كائنية التوجه]]، ال'''وراثة''' {{إنج|Inheritance}} خاصية أساسية في [[لغة برمجة|اللغات البرمجية]] كائنية التوجه، تتمثل في إمكانية بناء [[صنف (حوسبة)|صنف]] (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث "يرث" الصنف الجديد (المشتق، الفرعي) كل خصائص و سلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على ال[[مبرمج]] سوى تعريف الخصائص و السلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس.<ref>{{Cite conference| doi = 10.1007/BFb0019440| title = Designing an object-oriented programming language with behavioural subtyping| conference = REX School/Workshop on the Foundations of Object-Oriented Languages| volume = 489| pages = 60–90| series = Lecture Notes in Computer Science| year = 1991| last1 = America | first1 = Pierre| isbn = 978-3-540-53931-5| url = https://www.researchgate.net/profile/Pierre_America/publication/221501695_Designing_an_Object-Oriented_Programming_Language_with_Behavioural_Subtyping/links/00b7d52e0f188abba4000000.pdf}}</ref><ref>{{cite book | title=Mastering C++ | publisher=Tata McGrawhill Education Private Limited | author=Dr. K. R. Venugopal, Rajkumar Buyya | year=2013 | pages=609 | isbn=9781259029943}}</ref><ref>{{cite web |first=Allen |last=Holub |authorlink=Allen Holub |url=http://www.javaworld.com/article/2073649/core-java/why-extends-is-evil.html |title=Why extends is evil |date=1 August 2003 |accessdate=10 March 2015}}</ref> الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام [[كود مصدري|الشيفرة البرمجية]].
{{مصدر|تاريخ=أغسطس 2016}}

في ال[[برمجة كائنية التوجه]]، ال'''وراثة''' {{إنج|Inheritance}} خاصية أساسية في [[لغة برمجة|اللغات البرمجية]] كائنية التوجه، تتمثل في إمكانية بناء [[صنف (حوسبة)|صنف]] (class) على أساس صنف آخر تم بناؤه سابقا (يسمى الصنف العلوي، الأب، أو الأساس) أو أكثر، بحيث "يرث" الصنف الجديد (المشتق، الفرعي) كل خصائص و سلوكيات الصنف (الأصناف) الأم، وبحيث لا يبقى على ال[[مبرمج]] سوى تعريف الخصائص و السلوكيات الإضافية الخاصة بالصنف الفرعي دون تلك المشتركة مع الصنف (الأصناف) الأساس. الوراثة بالإمكانات التي توفرها، آلية لتنظيم العمل وتسهيله عبر إتاحة قابلية إعادة استخدام [[كود مصدري|الشيفرة البرمجية]].


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



{{ضبط استنادي}}
{{ضبط استنادي}}

نسخة 16:56، 24 ديسمبر 2017

في البرمجة كائنية التوجه، الوراثة (بالإنجليزية: 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.
  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". اطلع عليه بتاريخ 2015-03-10.