تصف هذه المقالة استخدام الواجهات والفصول المجردة في Java. شاركه للرجوع إليه ، على النحو التالي:
في المفهوم الموجهة للكائن ، نعلم أن جميع الكائنات تصور من قبل الفئات ، ولكن لا يتم استخدام جميع الفئات لوصف الكائنات. إذا لم يحتوي الفصل على معلومات كافية لوصف كائن ملموس ، فإن مثل هذا الفصل هو فئة مجردة.
غالبًا ما يتم استخدام الفصول التجريدية لتمثيل المفاهيم المجردة التي نحصل عليها في تحليل وتصميم مجال المشكلة. إنها تجريدات لسلسلة من المفاهيم الملموسة التي تبدو مختلفة ولكنها متشابهة بشكل أساسي. لا يمكننا أن نستند إليها (لا يمكننا التوصل إلى شيء ملموس) ، لذلك نسميها التجريدات.
على سبيل المثال: عندما نريد وصف "الفاكهة" ، فهو عبارة عن تجريد. لديها بعض الخصائص الشائعة مثل الكتلة والحجم (الفواكه لها كتلة) ، لكنها تفتقر إلى الخصائص (التفاح والبرتقال هي الفواكه ، ولها خصائصها الخاصة). لا يمكننا التوصل إلى الشيء الوحيد الذي يمكن أن يمثل الفواكه (لأن التفاح والبرتقال لا يمكن أن يمثلوا الفواكه). يمكن استخدام الفصول التجريدية لوصفها ، لذلك لا يمكن إنشاء فصول مجردة. عندما نستخدم فئة معينة لوصف "التفاح" ، يمكن لهذا الفئة أن يرث الفئة المجردة التي تصف "الفاكهة". نعلم جميعًا أن "التفاح" نوع من "الفاكهة".
في الحقل الموجهة للكائن ، تستخدم الفئات المجردة بشكل أساسي للاختباء. يمكننا إنشاء وصف مجردة ثابت لمجموعة من السلوكيات ، ولكن هذه المجموعة من السلوكيات يمكن أن يكون لها أي طرق تنفيذ ملموسة محتملة. هذا الوصف التجريدي هو فئة مجردة ، وتتجلى هذه المجموعة من أي تطبيقات ملموسة محتملة كجميع الفئات المشتقة من هذه الفئة المجردة.
لا يمكن تنفيذ جميع الطرق المجردة في الواجهات والفئات المجردة في تطبيقات ملموسة ، ولكن يجب تنفيذ جميع الأساليب المجردة في فئاتها الفرعية (يجب أن يكون لها جسم وظيفة ، حتى لو كانت فارغة في {}). قد ينظر مصممو Java في مرونة الأساليب التجريدية ، ويمكن لكل فئة فرعية تنفيذ أساليب مجردة وفقًا لاحتياجاتهم الخاصة.
تعريف الطبقة التجريدية على النحو التالي:
الفئة التجريدية العامة AbstractClass // هناك طريقة مجردة واحدة على الأقل في {public int t ؛ // Data Data Member Public Abstract Void Method1 () ؛ // طريقة الملخص ، يجب أن تنفذ الفئات الفرعية للطبقة التجريدية الأساليب التجريدية في الطبقة التجريدية في الطبقة الجماعية المجردة الفراغ 2 () ؛ طريقة الفراغ العام 3 () ؛ // طريقة غير abstract public method4 () ؛ يمكن تخصيص السلوك الافتراضي لأساليب طريقة غير المجردة ، أي ، يمكن تعيين السلوك الافتراضي لطرق غير المجردة ، وهو التنفيذ الملموس للطريقة} {...تعريف الواجهة كما يلي:
واجهة الواجهة العامة واجهة {ثابت نهائي int i ؛ // لا يمكن أن يكون هناك أعضاء بيانات عاديين في الواجهة ، فقط أعضاء بيانات ثابتة لا يمكن تعديلها. تعني الثابتة العالمية ، لا يمكن تعديل الوسائل النهائية. يمكن تعديله دون تعديل نهائي ثابت ، وسيتم إعلانه ضمنيًا على أنه طريقة الفراغ العام الثابت والنهائي 1 () ؛ // يجب أن تكون الطرق في الواجهة طرقًا مجردة ، لذلك لا تحتاج طريقة الفراغ العامة 2 () إلى تعديل تجريدي ؛ // لا يمكن تعيين السلوك الافتراضي للطرق إلى الواجهة ، أي أنه لا يمكن أن يكون هناك تطبيق محدد للطريقة}باختصار ، تعد الفئات المجردة فئات غير مكتملة ، والواجهات هي مجرد مجموعات من إعلانات الطريقة التجريدية والبيانات الثابتة التي لا يمكن تعديلها ، ولا يمكن إنشاء أي منهما.
بمعنى ما ، الواجهة هي شكل خاص من الفئة التجريدية. في لغة جافا ، تمثل الفصول التجريدية علاقة ميراث. يمكن للفصل أن يرث فئة مجردة واحدة فقط ، بينما يمكن للفصل تنفيذ واجهات متعددة. في كثير من الحالات ، يمكن أن تحل الواجهات محل الفصول التجريدية بالفعل ، إذا لم تكن بحاجة إلى التعبير عن الميراث المتعمد للسمات.
لمزيد من الفهم ، لغرض جافا تقديم فصول وواجهات مجردة ، فإن الإجابات التي حصلت عليها من الخبراء هي كما يلي:
1. من منظور التسلسل الهرمي للطبقة ، توجد فئات مجردة في الجزء العلوي من المستوى ، ولكن في التصميم الفعلي ، يجب أن تظهر الفصول المجردة بشكل عام لاحقًا. لماذا؟ في الواقع ، فإن اكتساب الفصول التجريدية يشبه إلى حد ما استخراج العوامل الشائعة في الرياضيات: AX+BX ، X هي فئة مجردة. إذا لم يكن لديك الصيغة السابقة ، فكيف تعرف ما إذا كان X عاملًا شائعًا؟ في هذا الصدد ، فإنه يتماشى أيضًا مع عملية فهم الناس لفهم العالم ، الملموسة أولاً ثم المجردة. لذلك ، إذا حصلت على الكثير من المفاهيم المحددة وإيجاد القواسم المشتركة في عملية التصميم ، فيجب أن يكون صحيحًا أن هذه المجموعة من القواسم المشتركة هي فئة مجردة.
2. على السطح ، تشبه الواجهة فئات مجردة ، لكن استخدامها مختلف تمامًا. تتمثل وظيفتها الأساسية في جمع بعض الفصول (المفاهيم) غير ذات الصلة معًا لتشكيل "فئة جديدة" جديدة قابلة للتشغيل مركزيًا. مثال نموذجي أعطيه للطلاب هو "سائق". من يمكن أن يكون سائق؟ يمكن لأي شخص القيام بذلك ، طالما تحصل على رخصة قيادتك. لذلك لا يهمني ما إذا كنت طالبًا أو عاملًا من ذوي الياقات البيضاء أو عامل ذوي الياقات الزرقاء أو رئيسًا ، طالما أن لديك رخصة قيادة ، فأنت سائق.
واجهة السائق {ترخيص getLicence () ؛ } Class studentDriver يمتد طالب الأطراف driverlicence {} class whtiecollaremployeedriver يمتد whtiecollaremplyee experments driverlicence {} class blueCollaremplyEedRiver يمتد bluecollaremplyee تنمية driverlicence {} class possdriver تمتد تنافس Boss {}عندما أقوم بتحديد فئة "السيارة" ، يمكنني تحديد "برنامج التشغيل".
Class Car {setDriver (driverlicence driver) ؛}في هذا الوقت ، لم يهتم كائن السيارة بما فعله السائق. كانت النقطة الشائعة الوحيدة هي أنهم حصلوا على رخصة قيادة (كلاهما نفذ واجهة السائق). يجب أن يكون هذا هو الجزء الأقوى في الواجهة ولا يمكن تمييزه عن الفصول المجردة.
تلخيص:
تستخلص الفصول المجردة من العوامل الشائعة لفئات الخرسانة ، في حين أن الواجهات هي "تجزئة" بعض الطبقات غير ذات الصلة في مجموعة مشتركة. عادة ، نطور عادة جيدة في استخدام واجهات متعددة. بعد كل شيء ، Java هي ميراث واحد ، على عكس C ++ ، ولكن يجب استخدامه عند استخدام فئات مجردة (تشبه إلى حد ما Goto) ، هاها.
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.