دعني أخبرك عن المفهوم الأساسي أولاً
في لغة Java ، فئة التجريد والواجهة هي آليتان تدعمان تعريفات الطبقة التجريدية. ويرجع ذلك بالتحديد بسبب وجود هاتين الآليتين التي يتم إعطاء جافا قدرات قوية موجهة نحو الكائن. تتشابه الفئة والواجهة التجريدية بشكل كبير في دعم تعريفات الفئة التجريدية ، ويمكن استبدالها ببعضها البعض. لذلك ، يبدو أن العديد من المطورين لديهم خيارات تعسفية للطبقة التجريدية والواجهة عند تحديد فئة مجردة. في الواقع ، لا يزال هناك فرق كبير بين الاثنين. يعكس اختيارهم حتى ما إذا كان فهم جوهر منطقة المشكلة وفهم نية التصميم صحيحًا ومعقولًا.
يتم استخدام كل من الفئة والواجهة التجريدية في لغة Java لأداء فصول مجردة (لا يتم ترجمة الفئة التجريدية في هذه المقالة من فئة مجردة ، فهي تمثل هيئة مجردة ، والفئة المجردة هي طريقة تستخدم بلغة Java لتحديد الفصول التجريدية. يرجى الانتباه إلى التمييز). إذن ما هو فئة مجردة؟ ما هي الفوائد التي يمكن أن تستخدم الفصول المجردة لنا؟
في المفهوم الموجهة للكائن ، نعلم أن جميع الكائنات تصورها الفصول ، ولكن العكس ليست كذلك. لا يتم استخدام جميع الفئات لوصف الكائنات (الفصول الخشبية). إذا لم يحتوي الفصل على معلومات كافية لوصف كائن ملموس ، فإن مثل هذا الفصل هو فئة مجردة. غالبًا ما يتم استخدام الفصول التجريدية لتمثيل المفاهيم المجردة التي نحصل عليها في تحليل وتصميم مجالات المشكلات ، وهي تجريدات لسلسلة من المفاهيم الملموسة التي تبدو مختلفة ولكنها متشابهة بشكل أساسي. على سبيل المثال: إذا قمنا بتطوير برنامج تحرير الرسوم ، فسوف نجد أن هناك مفاهيم محددة مثل الدوائر والثالث في حقل المشكلة. فهي مختلفة ، لكنها جميعها تنتمي إلى مفهوم الشكل. مفهوم الشكل غير موجود في مجال المشكلة. إنه مفهوم مجردة. وذلك على وجه التحديد لأن المفاهيم المجردة لا تحتوي على مفاهيم ملموسة مقابلة في مجال المشكلة التي لا يمكن إنشاء فئات مجردة تستخدم لتمثيل المفاهيم المجردة.
غالبًا ما تستخدم الوظائف والواجهات الافتراضية في تطوير Java. ما هو الفرق بين هذين؟
الخلاصة: يمكن ورث فئة واحدة فقط في فئة فرعية
الواجهة: يمكن للفئات الفرعية تنفيذ واجهات متعددة
إذن متى تستخدم الملخص ومتى تستخدم الواجهة؟
عندما تكون الفئة الفرعية والفئة الوالدية في علاقة ، على سبيل المثال ، فإن الآسيوي هو شخص ، فإن الفئة الفرعية الآسيوية يمكن أن ترث فئة الوالدين للشخص.
عندما تكون الفئة الفرعية والطبقة الوالدية مثل العلاقة ، على سبيل المثال ، فإن Superman في أمريكا يشبه Superman. قدرات سوبرمان ليست الجميع ، لذلك فهي ليست كل سمات. لا يمكننا أن ننسب القوى العظمى إلى فئة الوالدين البشرية. في هذا الوقت ، يمكننا استخدام الواجهة
مثال رمز:
Public Abstract Class Man {Public Abstract void eat () ؛} Public Interface Superpower {public void superpower () ؛} يمتد الطبقة العامة AsiAman Man {Overridepublic void eat () {system.out.println ( {system.out.println ("American Superman Can Fly") ؛}@Overridepublic Void Eat () {system.out.println ("يأكل أمريكان بالسكين والشوكة") ؛}} Americansuperman () ؛ AnasiAman.eat () ؛ Anamericansuperman.eat () ؛ Anamericansuperman.SuperPower () ؛}نتائج التشغيل:
الأميركيين يأكلون بسكين وشوكة أمريكان سوبرمان يمكن أن يطير الآسيويين الذين يأكلون مع عيدان تناول الطعام
الاستخدام الصحيح للتجريد والواجهة مفيد لتحسين قابلية قراءة الكود. عندما يرى الناس يمتد ، سيعرفون ما هو. عندما يرون التنفيذ ، يمكنهم معرفة الميزات التي يمتلكها هذه الفئة.