فئة الملخص مقابل الواجهة: الاختلافات وأوجه التشابه
نشرت: 2021-06-02إذا كنت جالسًا لإجراء مقابلة مع هندسة البرمجيات ، فإن السؤال الوحيد الذي يمكن أن تتوقعه هو - الاختلافات والتشابه بين Abstract Class و Interface.
الفصول المجردة والواجهات هي اللبنات الأساسية في البرمجة الشيئية. كلاهما يمكّن المبرمجين من تنفيذ أحد المفاهيم الأكثر أهمية في OOPs - التجريد. بينما يتم استخدام كلا من الفئات المجردة والواجهات لتنفيذ مفهوم التجريد ، يختلف الاثنان في التنفيذ ولهما حالات استخدام مختلفة. قد تبدو واجهات وفئات الملخصات مشابهة للمبتدئين ، لكن لا يمكن استخدامها بالتبادل.
في هذه المقالة ، سنلقي نظرة على الفروق الدقيقة في الفئات المجردة والواجهات وأوجه التشابه والاختلاف بين الاثنين. ضع في اعتبارك أن Abstract Class and Interface هو مجرد مفهوم ويمكن تنفيذه بأي لغة برمجة كائنية المنحى من اختيارك. من أجل الاتساق ، فإن أي بناء جملة نستخدمه في هذه المقالة لشرح المفاهيم لك سيكون جافا.
بنهاية هذه المقالة ، يمكنك التمييز بوضوح بين الفئات المجردة والواجهات والتي يجب تنفيذها لحالات محددة.
جدول المحتويات
واجهات - ما هي؟
يمكن فهم الواجهة في OOPs ببساطة على أنها عقد سلوكي بين أنظمة مختلفة. ما يعنيه هذا هو أن أي فئة تنفذ واجهة يجب أن توفر بعض التنفيذ لجميع طرق الواجهة.
يجب أن تكون جميع الطرق في الواجهة عامة ومجردة. لذلك ، تُفهم الواجهات أيضًا على أنها فئات "مجردة بحتة".
يبدو تعريف الواجهات كما يلي:
واجهة عامة تناول الطعام {
المضغ العام في الفراغ () ؛
هضم الفراغ العام () ؛
}
كما ترى ، يتضمن التعريف إضافة الاسم بواجهة الكلمات الرئيسية مسبقًا . علاوة على ذلك ، تم تحديد طريقتين عامتين مجردين ضمن هذه الواجهة - لذا ، فإن الفئة التي تنفذ الواجهة أعلاه ستحتاج إلى توفير التنفيذ للمضغ () والهضم () ؛ المهام.
الآن دعونا نلقي نظرة على ماهية الفئات المجردة ، وبعد ذلك سنجمع كلا المفهومين معًا حتى يكون لديك وضوح أفضل لأوجه التشابه والاختلاف بينهما.
فصول مجردة - ما هي؟
تسبق الكلمة الأساسية المجردة دائمًا فئة Abstract في إعلانها. علاوة على ذلك ، تعمل الفئات الخلاصة كمبادئ توجيهية تم إنشاؤها لفئاتها المشتقة غير المجردة. بهذا المعنى ، يجب أن يكون لديهم طريقة مجردة واحدة على الأقل في إعلانهم مع توفير التنفيذ المناسب للطرق غير المجردة.
هكذا يبدو تعريف فئات الملخص:
فئة الملخص العامة تناول الطعام {
getReady باطل عام () {
System.out.println ("أنا مستعد تمامًا لتناول الطعام") ؛
}
بداية الفراغ الملخص العام () ؛
توقف الفراغ الملخص العام () ؛
}
كما ترون في تعريف فئة الملخصات ، فإن وظيفة getReady () هي وظيفة غير مجردة ، بينما البداية () ؛ و توقف () ؛ الوظائف مجردة.
عندما يتعلق الأمر بتنفيذ الفصول المجردة ، فهناك بعض القواعد التي يجب أن تكون على دراية بها:
- لا يمكن إنشاء مثيل لفئات الملخص. هذا يعني - لا يمكننا إنشاء كائنات من أي فئات مجردة.
- أي فئة فرعية ستمدد فئة الملخص تحتاج إلى تنفيذ جميع الطرق المجردة الموضحة في فئة الملخص. إذا لم يطبق الفصل الفرعي جميع الطرق المجردة ، فيجب إعلان الفئة الفرعية كفئة مجردة أيضًا.
الآن بعد أن أصبح لدينا أساسيات Interfaces و Abstract ، فلنتحدث عن كيفية اختلافهما ، وأوجه التشابه بينهما ، ومتى يجب استخدام أي نهج.
الاختلافات والتشابهات بين الواجهات وفئات الملخص
جميع الطرق المعلنة داخل واجهة عامة ومجردة ضمنيًا - في حين أن الفئات الخلاصة يمكن أن تحتوي على جميع أنواع المعدلات لطرقها - من جزئية ، عامة ، ثابتة ، محمية ، وأكثر من ذلك.
علاوة على ذلك ، يمكن لأي فئة محددة بواسطة المستخدم تنفيذ أكثر من واجهة واحدة. ومع ذلك ، يمكنهم تنفيذ فئة Abstract واحد فقط. يمكن أن يكون لكل من Interfaces و Abstract Class Class طرق ومتغيرات ، ولكن لا يمكن إنشاء مثيل لأي منهما. جميع المتغيرات المعلنة داخل الواجهة نهائية. ومع ذلك ، فإن المتغيرات المعلنة في فئات الملخص يمكن أن تكون غير نهائية ويمكن تعديلها بواسطة الفئات المعرفة من قبل المستخدم.
فيما يلي ملخص لجميع الاختلافات الرئيسية بين فئة Abstract وواجهة.
معامل | فئات مجردة | واجهات |
الكلمة الرئيسية | يتم استخدام الكلمات الأساسية المجردة . | يتم استخدام الكلمات الرئيسية للواجهة . |
نوع المتغيرات | يمكنه التعامل مع المتغيرات النهائية وغير النهائية والثابتة وغير الثابتة. | يمكن فقط تحديد المتغيرات الثابتة والنهائية افتراضيًا. |
المتغيرات النهائية | قد يكون أو لا يحتوي على متغيرات نهائية معلنة داخله. | يتم الإعلان عن المتغيرات افتراضيًا على أنها نهائية |
معدلات الوصول | يمكن أن تحتوي على جميع المعدِّلات - خاصة ، عامة ، ثابتة ، إلخ. | يمكن أن يكون فقط معدّل الوصول العام. |
أنواع الطرق | يمكن أن يكون لها طرق مجردة وغير مجردة. | يمكن أن يكون لها طرق مجردة فقط. |
سرعة | بسرعة | بطيء ، لأنه يتطلب مراوغة إضافية. |
فئة الملخص مقابل الواجهة: متى تختار أيهما؟
إذا كنت بحاجة إلى فئة أساسية لتوفير بعض التطبيقات في التعليمات البرمجية الخاصة بك - فالفئة المجردة هي السبيل للذهاب. على سبيل المثال ، قد ترغب في تهيئة بعض المتغيرات داخل فئة لأداء بعض الإجراءات المنطقية في طريقة يمكن لجميع الفئات المشتقة استخدامها. في مثل هذا السيناريو ، فإن استخدام فئة Abstract هو أفضل رهان لك.
ومع ذلك ، إذا كنت بحاجة إلى تقديم أي سلوك إضافي إلى فصولك الدراسية ، فعليك اختيار الواجهات. في الواقع ، ستوفر لك الواجهات والفئات المجردة نفس الوظيفة. ومع ذلك ، فإن الاختلاف يأتي عندما تفكر في معايير الترميز. تساعدك الواجهات على تحقيق التجريد وتعدد الأشكال - وهما مبدأان مهمان من OOPs. كما أنه يسمح لك بالحفاظ على الكود مرتبطًا بشكل غير محكم بدلاً من الاقتران بإحكام.
دعنا الآن نلخص حالات استخدام الواجهات وفئات الملخص!
متى تستخدم الواجهات؟
تسمح الواجهة للمبرمجين ببناء أنماط سلوكية إضافية لفصولهم. يسمح لأي شخص بالبدء من الصفر وتنفيذ الواجهة في أي فئة يريدها. لذلك ، فإن الغرض من الواجهة هو عرضي - شيء يجب إضافته إلى الكود. لذلك ، في الحالات التي ترغب فيها في توفير وظائف إضافية للفئات ولا تمانع في كشف طرق واجهتك (نظرًا لأن جميع الطرق ستكون عامة) ، يجب أن تمضي قدمًا في تنفيذ الواجهة.
متى تستخدم فئات الملخص؟
على عكس الواجهات ، توفر الفئات الخلاصة بنية أكثر بكثير. تأتي الفئات الخلاصة مع تطبيقات افتراضية لبعض الطرق وحتى توفر أدوات مفيدة للتنفيذ الكامل لفئة الملخص. يجب عليك استخدام فئات مجردة لتوفير بعض الوظائف الشائعة عبر مجموعة من الفئات ذات الصلة مع ترك مساحة كافية لعمليات تنفيذ الطريقة الافتراضية.
تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.
ختاما
يعد التجريد مكونًا مهمًا في OOPs ، وتسمح لك كل من Class Class and Interfaces بتحقيق درجة معينة من التجريد في التعليمات البرمجية الخاصة بك. ومع ذلك ، فإن استخدامها بالتبادل دون معرفة الإيجابيات والسلبيات يعد خطأ ويمكن أن يتسبب في أن تكون التعليمات البرمجية الخاصة بك (وفي النهاية البرنامج الخاص بك) بطيئة وعربة.
نأمل أن تساعدك هذه المقالة في فهم الاختلافات الجوهرية بين الفئات المجردة والواجهات ، جنبًا إلى جنب مع بعض المعرفة النحوية وأين يتم تنفيذها.
إذا كنت مهتمًا بمعرفة المزيد حول الفصول والواجهات المجردة ، فقم بإلقاء نظرة على برنامج upGrad & IIIT-B's Executive PG في تطوير البرامج كاملة المكدس المصمم للمهنيين العاملين ويقدم أكثر من 500 ساعة من التدريب الصارم ، وأكثر من 9 مشاريع ومهام ، وحالة خريجي IIIT-B ، ومشاريع التخرج العملية العملية والمساعدة في العمل مع الشركات الكبرى.
إذا كنت لا تزال في حيرة من أمرك بشأن الفروق الدقيقة ، فيرجى ترك تعليق أدناه ، وسنعود إليك قريبًا!
ما هي فئة مجردة في جافا؟
فئة abstract هي فئة لا يمكن إنشاء مثيل لها ولا يمكن توريثها. ليس لديها عمليات مهمة في حد ذاتها وتعمل فقط كطبقة فائقة للطبقات الخرسانية. يتم استخدامه فقط لتقديم التخصص. ضع في اعتبارك مثال فئة السيارات وفئاتها الفرعية من السيارات الرياضية وهاتشباك. يمكن اعتبار فئة Abstract Car هي الفئة الأصلية لجميع الفئات الفرعية.
متى تستخدم فئة مجردة في جافا؟
الغرض الرئيسي من فئة الملخص هو توفير الفئة الأساسية لمجموعة من الفئات المتشابهة. يجب على جميع الفئات التي توسع فئة مجردة تنفيذ الأساليب المحددة في فئة abstract الخاصة بهم. تُستخدم فئات الخلاصة بشكل أساسي لتحديد واجهة معينة يتوقع أن ينفذها الفصل. يمكن استخدام فئة abstract كفئة فائقة يمكننا من خلالها تحديد الأساليب والطرق المطلوبة التي يمكن تنفيذها في الفصل الفرعي ويمكن أن يرثها الفصل الفرعي. باستخدام فئة مجردة ، يمكننا تحديد الكود المشترك الذي يمكن أن يستخدمه الفصل الفرعي ، مما يجعله أكثر كفاءة.
ما هي الاختلافات بين فئة مجردة والواجهة في جافا؟
فئة الملخص والواجهة هما طريقتان لتعريف فئة تحتوي على بعض وليس كل الطرق التي يمكن للفصل تنفيذها. هذان هما مختلفان بشكل ثابت ويتم تحقيقهما بشكل مختلف. ولكن من حيث الاستخدام الديناميكي فإنهما متماثلان. الواجهة هي مجرد فئة تحتوي فقط على ثوابت وإعلانات طريقة مجردة. لا يوجد تطبيق فعلي للواجهة في Java. لذا فإن الواجهات عبارة عن فئات وهمية تمامًا. تستخدم الواجهات لتحديد عقود الطرق والثوابت في الفصل. سيجبر الفصل على تنفيذ نفس الأساليب والثوابت. يمكن تنفيذ الطريقة إما في فئة مجردة أو في فئات فرعية. فئة الملخص هي فئة تحتوي على طرق مجردة. الفئات الفرعية تنفذ تلك الأساليب المجردة. يمكن استخدام فئة الملخص والواجهة معًا لفرض عقود معينة في الفصل.