تنفذ مقابل يمتد

إن Implements and Extends هما كلمتان رئيسيتان توجدان في لغة برمجة Java والتي توفر وسيلة لنقل الوظائف المضافة إلى فصل جديد. يتم استخدام الكلمة المفتاحية بشكل صريح لتنفيذ واجهة ، في حين يتم استخدام الكلمة الأساسية الموسعة للوراثة من فئة (فائقة). يرجى ملاحظة أن مفاهيم الوراثة والواجهات موجودة في معظم لغات البرمجة الموجهة للكائنات الأخرى مثل C # و VB.NET ، ولكنها تقدم بناء جملة أو كلمات رئيسية مختلفة لتطبيق تلك المفاهيم. تركز هذه المقالة فقط على تطبيق وتوسيع الكلمات الأساسية المعرفة في Java.

يمتد

يتم استخدام الكلمة الأساسية الموسعة لتطبيق مفهوم الميراث في لغة برمجة جافا. يوفر الوراثة بشكل أساسي إعادة استخدام التعليمات البرمجية عن طريق السماح بتوسيع خصائص وسلوك فئة موجودة بواسطة فئة معرفة حديثًا. عندما تقوم فئة فرعية جديدة (أو فئة مشتقة) بتوسيع فئة فائقة (أو فئة رئيسية) سترث هذه الفئة الفرعية جميع سمات وطرق الفئة الفائقة. يمكن للفئة الفرعية اختيارياً تجاوز السلوك (توفير وظائف جديدة أو موسعة للأساليب) الموروثة من الفئة الأصل. لا يمكن لفئة فرعية تمديد فئات متعددة متعددة في Java. لذلك ، لا يمكنك استخدام يمتد لميراث متعددة. من أجل الحصول على الوراثة المتعددة ، تحتاج إلى استخدام واجهات كما هو موضح أدناه.

تطبيقات

يستخدم الكلمة الأساسية في لغة برمجة Java لتطبيق واجهة من قبل فئة. الواجهة في Java هي نوع تجريدي يستخدم لتحديد عقد يجب تنفيذه بواسطة الفئات ، والتي تنفذ تلك الواجهة. عادةً ما تحتوي الواجهة على تواقيع الطريقة والإعلانات الثابتة فقط. أي واجهة تقوم بتنفيذ واجهة معينة يجب أن تنفذ جميع الطرق المحددة في الواجهة ، أو يجب أن تعلن كفئة مجردة. في Java ، يمكن تعريف نوع مرجع الكائن كنوع واجهة. لكن يجب أن يكون هذا الكائن خاليًا أو يجب أن يحتوي على كائن من فئة ، والذي ينفذ تلك الواجهة المعينة. باستخدام Implements الكلمة الأساسية في Java ، يمكنك تطبيق واجهات متعددة لفئة واحدة. لا يمكن للواجهة تطبيق واجهة أخرى. ومع ذلك ، يمكن للواجهة تمديد الفصل.

الفرق بين الأدوات ويمتد

على الرغم من أن Implements and Extends هما كلمتان أساسيتان توفران آلية لوراثة السمات والسلوك لفصل في لغة برمجة Java ، إلا أنهما يستخدمان لغرضين مختلفين. يتم استخدام الكلمة الأساسية للتطبيق لفئة ما لتنفيذ واجهة معينة ، بينما يتم استخدام الكلمة الأساسية الموسعة لفئة فرعية لتمتد من فئة فائقة. عندما ينفذ الفصل الدراسي واجهة ، فإن تلك الفئة تحتاج إلى تنفيذ جميع الطرق المحددة في الواجهة ، ولكن عندما تقوم فئة فرعية بتوسيع فئة فائقة ، فإنها قد تتجاوز أو لا تتخطى الطرق المدرجة في الفئة الأصل. أخيرًا ، هناك اختلاف رئيسي آخر بين Implements و Extends وهو أنه يمكن للفصل تنفيذ واجهات متعددة ، لكنه لا يمكن أن يمتد إلا من فئة فائقة واحدة في Java. بشكل عام ، يعتبر استخدام Implements (واجهات) أكثر ملاءمة مقارنة باستخدام Extends (الوراثة) ، لعدة أسباب مثل مرونة أعلى والقدرة على تقليل الاقتران. لذلك في الممارسة العملية ، يفضل البرمجة على الواجهة على الامتداد من الفئات الأساسية.