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