المفهوم المهم في البرمجة الموجهة للكائنات هو الميراث. ويوفر وسيلة ل شاء لتحديد العلاقات مع بعضها البعض. كما يوحي الاسم ، كائن قادر على وراثة الخصائص من كائن آخر.
بعبارات أكثر تحديدًا ، يكون الكائن قادرًا على نقل حالته وسلوكياته إلى أطفاله. لكي يعمل الميراث ، تحتاج الكائنات إلى خصائص مشتركة مع بعضها البعض.
في جافا، يمكن أن تؤخذ الطبقات من الفصول الأخرى ، والتي يمكن اتخاذها من الآخرين ، وهلم جرا. هذا لأنه يمكنهم أن يرثوا ميزات من الفصل أعلاه ، وصولاً إلى أعلى فئة كائن.
مثال على الميراث جافا
لنفترض أننا نصنع فصلاً يسمى الإنسان يمثل خصائصنا المادية. إنها فئة عامة يمكن أن تمثلك أنت أو أي شخص في العالم. تقوم حالتها بتتبع أشياء مثل عدد الأرجل وعدد الأسلحة ونوع الدم. لديها سلوكيات مثل الأكل والنوم والمشي.
الإنسان مفيد في الحصول على إحساس عام بما يجعلنا جميعًا متساوين ، لكنه لا يستطيع ، على سبيل المثال ، أن يخبرني عن الاختلافات بين الجنسين. لذلك ، نحتاج إلى تكوين نوعين من الفصلين الجديدين يدعى الرجل والمرأة. تختلف حالة وسلوك هاتين الفئتين عن بعضهما البعض بطرق عديدة باستثناء الطرق التي يرثنها الإنسان.
لذلك ، يسمح لنا الميراث بتضمين حالة وسلوك فئة الوالدين إلى طفلها. يمكن للفصل الفرعي بعد ذلك توسيع الحالة والسلوكيات لتعكس الاختلافات التي يمثلها. الجانب الأكثر أهمية لهذا المفهوم هو أن نتذكر أن الطبقة الفرعية هي نسخة أكثر تخصصًا من الوالد.
ما هي الطبقة الفائقة؟
في العلاقة بين كائنين ، الطبقة الفائقة هي الاسم الذي يطلق على الفئة الموروثة منها. يبدو وكأنه فئة المخادع السوبر ، ولكن تذكر أنه إصدار أكثر عمومية. قد تكون الأسماء الأفضل لاستخدامها هي الفئة الأساسية أو ببساطة الفئة الأصل.
لنأخذ مثالاً أكثر واقعية في هذه المرة ، يمكن أن يكون لدينا فئة فائقة تسمى شخص. تحتوي حالته على اسم الشخص وعنوانه وطوله ووزنه ، كما أنه يحتوي على سلوكيات مثل التسوق والتوصل إلى السرير ومشاهدة التلفزيون.
يمكننا أن نجعل فصلين جديدين يرثان من شخص يدعى الطالب والعامل. إنها إصدارات أكثر تخصصًا لأنه على الرغم من أن لديهم أسماء وعناوين ومشاهدة التلفزيون والتسوق ، إلا أنها تتميز بخصائص مختلفة عن بعضها البعض.
يمكن أن يحصل العامل على حالة تحمل المسمى الوظيفي ومكان العمل ، بينما قد يحتفظ الطالب ببيانات حول مجال الدراسة ومؤسسة التعلم.
مثال الطبقة الفائقة:
تخيل أنك تعرف فئة الشخص:
شخص الطبقة العامة. { }
يمكن إنشاء فئة جديدة عن طريق توسيع هذه الفئة:
موظف فئة عامة يمتد الشخص. { }
ويقال إن فئة الشخص هي الطبقة العليا من فئة الموظف.
ما هي فئة فرعية؟
في العلاقة بين كائنين ، الفئة الفرعية هي الاسم المعطى للفئة الموروثة من الطبقة الفائقة. على الرغم من أن هذا يبدو قليلاً ، إلا أنه تذكر أنه إصدار أكثر تخصصًا من الفئة الفائقة.
في المثال السابق ، يعد الطالب والعاملون من الفئات الفرعية.
يمكن أن تُعرف الفئات الفرعية أيضًا بالفصول المشتقة أو الفصول الفرعية أو الفصول الموسعة.
كم عدد الفئات الفرعية التي يمكنني الحصول عليها؟
يمكنك الحصول على أكبر عدد ممكن من الفئات الفرعية. لا يوجد أي قيود على عدد الفئات الفرعية التي يمكن أن تحتوي عليها الفئات الفائقة. وبالمثل ، ليس هناك قيود على عدد مستويات الميراث. يمكن بناء التسلسل الهرمي للفئات على منطقة معينة من القواسم المشتركة.
في الواقع ، إذا نظرت إلى مكتبات Java API سترى العديد من الأمثلة على الميراث. يتم ورث كل فئة في واجهات برمجة التطبيقات من فئة تسمى java.lang. موضوع. على سبيل المثال ، في أي وقت تستخدم فيه كائن JFrame ، تكون في نهاية سطر طويل من الميراث:
java.lang. موضوع. الموسعة بواسطة java.awt. مكون. الموسعة بواسطة java.awt. حاوية. الموسعة بواسطة java.awt. نافذة او شباك. الموسعة بواسطة java.awt. الإطار. الموسعة من قبل javax.swing. JFrame.
في Java ، عندما ترث فئة فرعية من فئة فائقة ، تُعرف باسم "توسيع" الفئة الفائقة.
هل يمكن أن ترث فئة فرعية من العديد من الفئات الفائقة؟
لا. في Java ، يمكن للفئة الفرعية فقط تمديد فئة فائقة واحدة.
لماذا استخدام الميراث؟
يسمح الوراثة للمبرمجين بإعادة استخدام الرمز الذي كتبوه بالفعل. في مثال فئة الإنسان ، لا نحتاج إلى إنشاء حقول جديدة في فئة الرجل والمرأة لعقد فصيلة الدم لأنه يمكننا استخدام الحقل الموروث من فئة الإنسان.
فائدة أخرى لاستخدام الميراث هي أنه يتيح لنا التعامل مع فئة فرعية كما لو كانت فئة فائقة. على سبيل المثال ، دعنا نقول أن البرنامج قد أنشأ مثيلات متعددة لكائنات الرجل والمرأة. قد يحتاج البرنامج إلى استدعاء سلوك النوم لكل هذه الكائنات. نظرًا لأن سلوك النوم هو سلوك الطبقة البشرية الفائقة ، يمكننا تجميع كل كائنات الرجل والمرأة معًا ومعاملتها كما لو كانت كائنات بشرية.