يسعى هذان الشخصان إلى تقليد عناصر العالم الحقيقي وجعله أسهل على المطورين لكتابة رمز يشمل النظرة العالمية التي ينشئون فيها رمزًا.
يحتوي الترميز الكينوني على أربعة أفكار أساسية: الوراثة ، والتجريدات ، وتعدد الأشكال ، والحبس. كما ذكرنا سابقًا ، يمكن اعتبار كل فكرة أساس أي لغة معاصرة.
الوجبات السريعة الرئيسية
- الوراثة وتعدد الأشكال كلاهما مفهومان في البرمجة الشيئية.
- الوراثة هي قدرة الطبقة على وراثة الخصائص والطرق من فئة أخرى. في الوقت نفسه ، يسمح تعدد الأشكال بمعالجة الكائنات من فئات مختلفة كما لو كانت تنتمي إلى نفس الفئة.
- الوراثة هي طريقة لإنشاء تسلسل هرمي للفئات ، في حين أن تعدد الأشكال هو وسيلة لجعل الكود أكثر مرونة وقابلية للتكيف.
الميراث مقابل تعدد الأشكال
يسمح الوراثة بإعادة استخدام الكود ويمكن أن تساعد في تنظيم الكود في تسلسلات هرمية منطقية. تعدد الأشكال هو قدرة كائنات من فئات مختلفة على مشاركة وظائف مشتركة من خلال الوراثة والواجهات. يمكن تحقيقه بطريقتين: وقت التجميع ووقت التشغيل.
الميراث هو انتقال يتم بموجبه إنشاء فئة جديدة تستمد خصائص هذه المجموعة القابلة للتحديد. إنه يروج لمفهوم استنساخ الكود ويقصر تعقيد الكود عبر الحوسبة الموجهة للكائنات.
الانتقال الفردي ، الميراث متعدد المستويات ، النسب المتعددة ، الوراثة الهجينة ، الوراثة الأبوية هي المظاهر الشائعة للميراث.
تعدد الأشكال هو القدرة على إتمام عمل بأشكال أو طرق عديدة. يتم استخدامه لوصف الوظائف أو التقنيات.
يتيح تعدد الأشكال للكيان اختيار إصدار العملية لأداء كل من وقت التجميع والتشغيل. يُصنف تعدد الأشكال إلى نوعين: تقلب وقت التجميع وكذلك تعدد الأشكال في وقت التشغيل.
جدول المقارنة
معلمات المقارنة | وراثة | تعدد الأشكال |
---|---|---|
الباقة الأساسية | الميراث الأساسي هو عملية بناء فئة جديدة باستخدام مواصفات فئة قديمة. | تعدد الأشكال مفيد كجسر بين الأشكال المختلفة. |
تطبيق | الميراث ينقسم إلى فئات مختلفة. | في الوظيفة / الطرق ، يتم استخدام عدم التجانس. |
استعمل | لتعزيز مفهوم النمذجة في OOP وتقصير الكود. | يسمح للكيان باختيار تكرار العملية المراد تنشيطه في وقت الترجمة والتشغيل. |
استمارات | الميراث الفردي والمتعدد والمستويات ، وما إلى ذلك ، كلها ممكنة. | يمكن تجميع الاختلافات الجينية وكذلك وقت التشغيل. |
مثال | نظرًا لأن "الجدول" هو "خشب صلب" ، يمكن أن يمتلك "جدول" الفئة خصائص الفئة الفرعية "الخشب الصلب". | يمكن أيضًا استدعاء وظيفة "ضبط اللون" في فئة "المكتب" عند الإنشاء وسرعة التشغيل. |
ما هو الميراث؟
برز الوراثة كميزة رئيسية لـ OOP تدعم قابلية التوسع. يمكن وصف قابلية إعادة الاستخدام على أنها القدرة على إنشاء فئة خاصة عن طريق إعادة تدوير خصائص قاعدة بيانات الكائن فقط.
في الوراثة ، يبدو أن هناك وحدة بنيوية ترثها الطبقات المجردة. عندما يقترض الفصل صنفًا آخر ، تصبح سمات كل فئة أساسية أعضاء في بنية البيانات.
يحدد التعبير العادي لإمكانية الوصول ، في هذه الحالة ، طريقة الإشارة إلى المكون في بنية البيانات للفئة المشتقة. ما لم يتم إعطاء استراتيجية وصول معينة ، فمن المفترض أن تكون خاصة باختيارها.
إذا كانت الأساليب المجردة صارمة ، فسيكون مركز التحكم عامًا حسب الاصطلاح في C ++. الفئة الفرعية في جافا يستعير الفئة الأخرى أثناء استخدام المصطلح يمتد.
لا يمكن للمتغير زيارة خصائص الفئة الأساسية التي تم تمييزها على أنها خاصة. قد يكون النموذج الأولي ، مثل جافا، واسترداد السمات السرية للفئة الفائقة ، وتوفر Java حلاً إذا احتاج أحد المتسللين إلى الحصول على هذه الأجزاء أو تهيئتها.
يمكن للفئة الفرعية استخدام المصطلح "super" للإشارة إلى حالات الطبقة الفائقة المجاورة لها. يمكن أن تصل فقط إلى مكونات أقرب طبقة عظمى.
ما هو تعدد الأشكال؟
يتم تعريف تعدد الأشكال على أنه "عملية واحدة، وأشكال متعددة". ويتم إنجازه على كل من مستويات الترجمة والأحداث.
يستخدم التحميل الزائد لتحقيق مرونة وقت الترجمة ، بينما التجاوز يستخدم لتحقيق التباين الجيني في وقت التشغيل.
يمكّن تعدد الأشكال الأداة من اختيار "أي إصدار من العملية يتم تنفيذه عند" في ذلك الوقت بالإضافة إلى التجميع ولكن أيضًا وقت التشغيل.
يشير التحميل الزائد للثبات إلى استدعاء آلية في فئة عدة مرات بأنواع بيانات وحجج مختلفة ، على الرغم من أن الطريقة المراد تشبعها يجب أن يكون لها نفس آلية معاودة الاتصال.
بالنسبة لجميع هذه الفترة تقريبًا ، كانت الخوارزميات الموسعة عبارة عن مولدات للفئات. ينطبق المفهوم الغالب فقط على عمليات التصنيفات التي تتوافق مع مفهوم النسب.
في لغة C++، يتم وضع علامة على التقنية التي سيتم تجاوزها بكلمة "افتراضي" في النموذج العلائقي ويتم إعادة إنتاجها في النموذج الأولي.
يستلزم التحميل الزائد كتابة الكود أو ربما طريقة الصنف عدة مرات بمعلمات مختلفة ولكن متغيرات الحالة نفسها.
إنه يعني أن المعلمات المقدمة في العملية قد تختلف ، والقيم المحسوبة المقدمة في البرنامج النصي في وقت التشغيل تحدد متغير البرنامج الذي سيتم تنفيذه. في المتوسط ، أكثر العمليات التي تم تحميلها فوق طاقتها هي فئة وظيفة الكائن.
الاختلافات الرئيسية بين الوراثة وتعدد الأشكال
- الوراثة تمكن المتغير الكامن من استخدام مكونات وطرق نوع الفئة الأساسية. لا يحصل مخطط الفصل على تحديد هؤلاء الأعضاء أو الأساليب. ومع ذلك ، فإن تعدد الأشكال يسمح للكائن باختيار إصدار الإجراء المطلوب تنفيذه في كل من وقت الإنشاء والتشغيل.
- الطبقات تدعم الميراث. من ناحية أخرى ، يستخدم تعدد الأشكال في التقنيات والمتغيرات.
- الوصية المنفردة والمتعددة والمستويات والهرمية والهجينة هي أنواع عديدة من الميراث. من ناحية أخرى ، يتميز تعدد الأشكال بالحمل الزائد والتجاوز.
- الميراث هو إنشاء فئة ترث ميزاتها من كائن محدد. من ناحية أخرى ، تعدد الأشكال هو وظيفة يمكن تنفيذها بطرق مختلفة.
- في الغالب في حالة الميراث ، قد تشتق فئة الدراجة من الفئة التي تمثل المركبات ذات العجلتين ، والتي قد تكون تقسيمًا فرعيًا للسيارات. في تعدد الأشكال ، يمكن أن تحتوي دراجة الفئة على طريقة تسمى مجموعة اللون التي تغير لون الدراجة اعتمادًا على اسم كل من اللون الذي قدمته.
- https://dl.acm.org/doi/abs/10.1145/1921607.1921611
- https://link.springer.com/chapter/10.1007/978-3-322-91603-7_23
آخر تحديث: 11 يونيو 2023
سانديب بهانداري حاصل على بكالوريوس هندسة في الحاسبات من جامعة ثابار (2006). لديه 20 عامًا من الخبرة في مجال التكنولوجيا. لديه اهتمام كبير في المجالات التقنية المختلفة ، بما في ذلك أنظمة قواعد البيانات وشبكات الكمبيوتر والبرمجة. يمكنك قراءة المزيد عنه على موقعه صفحة بيو.
تم توضيح الفرق بين الميراث وتعدد الأشكال بشكل جيد وهذه المقالة بمثابة مرجع قيم.
تقدم المقالة شرحًا موجزًا ومفيدًا لأساسيات البرمجة الشيئية.
تقدم المقالة فهمًا عميقًا للوراثة وتعدد الأشكال والدور الذي تلعبه في البرمجة الشيئية.
لقد وجدت أن الشرح حول تعدد الأشكال وكيف يمكن تحقيقه في كل من وقت الترجمة والمستويات المستندة إلى الحدث هو ثاقب للغاية.
يعد جدول المقارنة إضافة رائعة لأنه يوضح بوضوح الاختلافات بين الوراثة وتعدد الأشكال.
إن الأمثلة المقدمة لكل من الميراث وتعدد الأشكال تساعد حقًا في فهم هذه المفاهيم بشكل أفضل.