‫مرحبًا بعودتك.
‫في هذا الفيديو ، سنغطي فئات مجردة ، وبالتالي سننشئ مجموعة من الفئات الجديدة.
‫ومن المهم أن تفهم مفهوم الطبقات وأيضًا الميراث وتعدد الأشكال ، لأننا
‫سنبني على ذلك.
‫وما نبدأ به هو إنشاء فصل دراسي جديد.
‫لذلك دعونا ننشئ فصلًا جديدًا.
‫هنا نذهب إلى فئة Project Add ، وسأقوم بإنشاء فئة الشكل وسيكون هذا الشكل
‫CSS.
‫الآن ، الفكرة هي أننا نريد إنشاء فئة لا نريد إنشاء أي كائنات ، لذلك لا
‫نريد إنشاء مثيل للأشكال.
‫نريد إنشاء كائنات تمثل أنواعًا من الأشكال ولكنها لا تشكل نفسها.
‫على سبيل المثال ، سيكون الشكل مكعبًا أو الشكل يكون كرة.
‫وأنا أستخدم الأشكال ثلاثية الأبعاد هنا ، أليس كذلك؟
‫أشكال ثلاثية الأبعاد.
‫حسنًا ، سننشئ فئات ترث من الشكل ، لكننا نريد التأكد من أن الشكل
‫هو فئة مجردة فعلية ، مما يعني أننا لن نتمكن من إنشاء كائن
‫منه ، لكننا سنستخدمه أنظمة أو طرقها وخصائصها.
‫اذا هيا بنا نبدأ.
‫لنجعل هذا الشكل مجردًا ، أولاً.
‫ومن أجل القيام بذلك ، يمكننا استخدام ملخص الكلمات الرئيسية.
‫لذا فهي الآن فئة مجردة.
‫الآن دعنا ننتقل إلى برنامجنا الذي يرى ونرى أنه فئة مجردة فعلية.
‫لذلك لنقم بإنشاء شكل.
‫الشكل الأول يساوي الشكل الجديد.
‫لذلك عندما نحاول القيام بذلك ، يمكنك أن ترى أنه لا يمكن إنشاء مثيل لفئة مجردة أو شكل
‫واجهة.
‫وبما أن شكلنا هو فئة مجردة ، فلا يمكننا إنشاء كائنات منه ، لذلك لا يمكننا إنشاء مثيل له.
‫هذا جانب مهم هنا.
‫حسنا.
‫سنحتاج الآن إلى خاصية ، وسأقوم فقط بإنشاء هذه الخاصية المسماة name.
‫لذا فإن الشكل يحتاج إلى اسم ولدينا حرف جامع ، وما إلى ذلك. من أجل إنشاء هذا ، أنا فقط أستخدم خاصية pre prop ثم علامة
‫تبويب مزدوجة من أجل إنشاء خاصية جديدة.
‫لذلك رأينا ذلك في مقاطع فيديو أخرى.
‫الآن أريد أن يكون لدي طريقة وستكون الطريقة التي أرغب في استخدامها طريقة افتراضية.
‫الفراغ الظاهري الحصول على المعلومات.
‫تُستخدم لوحة المفاتيح الظاهرية التي تراها هنا لتعديل مفهرس خصائص الأسلوب أو الحدث المعلن
‫في الفئة الأساسية ويسمح بالكتابة فوقها في الفئة المشتقة.
‫لذلك يسمح لنا هذا بتجاوز طريقة الحصول على المعلومات في فصل القيادة.
‫حسنا.
‫هذه هي الفكرة من وراء هذه الكلمة المفتاحية الافتراضية هنا.
‫لذلك دعونا فقط نضيف عبارة هنا.
‫لذا انظر علامة التبويب المزدوجة من أجل التحكم في الخط الصحيح.
‫وهنا أريد فقط أن أكتب شيئًا مثل.
‫هذا هو ثم اسم الشكل.
‫لذلك هذا اسم.
‫والآن الفكرة وراء هذا هي أنني أريد أن يكون لدي سطر جديد ثم أريد أن أحصل على هذا البيان.
‫هذا هو ثم اسم الشكل ، لأنه كلما أنشأنا شكلًا ، يمكننا تعيين
‫اسمه.
‫لذلك لدينا فراغ افتراضي.
‫الآن ، يمكننا أيضًا إضافة طريقة مجردة.
‫لنقم الآن بهذا الحجم المزدوج المجرد.
‫إذن ما أريد حسابه هو حجم الشكل.
‫الآن ، هنا ، لن أقوم بتنفيذ هذه الطريقة.
‫هذا تمييز مهم هنا.
‫لن أقوم بتنفيذه هنا.
‫سأقول فقط ، حسنًا ، كلما أراد الفصل أن يرث مني ، فإنه يحتاج إلى تنفيذ وظيفة
‫لطريقة الحجم.
‫حسنا.
‫الآن ، يمكننا بالطبع تسمية هذا ، حساب الحجم أو أشياء من هذا القبيل ، لكنني
‫سأسمي هذا المجلد.
‫حسنا.
‫والآن بعد أن تم إعداد فئة الشكل الخاصة بنا ، يمكننا حفظها ويمكننا إنشاء فصل جديد.
‫لذا فإن الفصل التالي الذي سأقوم بإنشائه هو فئة المكعب.
‫لذلك سأقوم فقط بإنشاء مكعب ، وهو شكل ثلاثي الأبعاد.
‫حتى الآن سيرث المكعب الخاص بي من الشكل.
‫الآن ، إذا قمت بذلك ، يمكنك أن ترى أنني تلقيت خطأ هنا.
‫تقول أن Cube لا تنفذ حجم شكل العضو المجرد الموروث.
‫حتى تظهر إمكانية إصلاح هذا.
‫حسنًا ، نفذ فئة مجردة.
‫إذا قمت بذلك ، يمكنك أن ترى أنه ينفذ طريقة الحجم هذه ببيان تجاوز.
‫لذلك تقول إنها تتجاوز كل ما تم تعريفه في الشكل.
‫وبما أن الشكل هو فئة مجردة وهذه الطريقة مجردة.
‫كما ترون ، لا توجد طريقة للجسم.
‫إنه حقًا مجرد إعلان عن الطريقة.
‫لذا يمكننا الآن المضي قدمًا وبالطبع تنفيذ شيء ما.
‫يمكنك أن ترى أننا طرحنا خطأ هنا ، استثناء غير مطبق.
‫بالطبع نريد تنفيذ شيء ما هنا.
‫لذلك دعونا نقوم بحساب الحجم في فئة المكعب.
‫الآن من أجل حسابها ، ما نحتاجه هو أننا سنحتاج إلى خاصية ستكون الطول.
‫لذلك سأقوم بإنشاء خاصية جديدة تسمى الطول هنا ، وسأضيف أيضًا مُنشئًا.
‫إذن Public Cube وكلما أردت إنشاء مكعب ، أحتاج إلى تمرير طول.
‫هذا ما أقوله هنا.
‫وأثناء وجودي فيه ، سأضيف أيضًا اسمًا.
‫كما ترى ، نحن نستخدم الوراثة هنا لأن الاسم لم يتم تعريفه في المكعب ، ولكن تم تعريفه
‫في الشكل.
‫لذا يمكنني فقط تعيين اسم المتغير هنا وسأحدد الطول على الطول الذي تم تمريره
‫لي.
‫لذا فإن طول الخاصية سيكون بنفس طول الطول الذي يتم تمريره بمجرد إنشاء كائن من النوع.
‫س إذن هذه هي الفكرة من وراء هذا المتغير.
‫وبعد ذلك يمكننا تنفيذ طريقة الحجم هذه ويمكننا ببساطة إرجاع شيء ما.
‫لذلك يحتاج إلى إرجاع مزدوج ، أليس كذلك؟
‫لذا نحتاج إلى إرجاع شيء يستند إلى ضعف.
‫ولحساب حجم المكعب ، أستخدم مكعبًا له نفس الطول من جميع الجوانب.
‫سأقول الطول مرفوعًا للقوة الأسية ثلاثة.
‫إذن ، الرياضيات ، اللب ، الطول ثلاثة ، هذا يعني أنها ستحسب الطول ، ضرب الطول ، ضرب
‫الطول.
‫إذن هذا هو الحجم الذي سيكون لدينا وسيعيد هذه القيمة.
‫الآن يمكننا المضي قدمًا ويمكننا أيضًا تنفيذ هذه الطريقة المسماة الحصول على المعلومات.
‫لذا ما سأفعله هو أنني سأقوم بنسخها ولن أستخدم الكلمة الرئيسية الافتراضية الآن ، بل
‫سأقوم بإلغاء الكلمة الأساسية لأنني أريد تجاوز طريقة الحصول على المعلومات من والدي الآن وهنا.
‫إذا قمت بذلك ، فما يمكنني فعله هو أنه يمكنني أيضًا استدعاء طريقة الحصول على المعلومات من صفي الأساسي ، مما يعني في هذه الحالة
‫أنه سيستدعي أيضًا الحصول على معلومات من شكل نقطة CSS.
‫لذلك سوف نسمي هذه الطريقة هنا.
‫يعني ذلك أنه سيتم تنفيذ هذا الرمز ومن ثم سيتم تنفيذ أي كود نضيفه في الجزء السفلي منه.
‫لذا سأضيف نصًا صغيرًا هنا وسيقول إن طول المكعب ثم سأقوم بتمرير الطول
‫هنا.
‫لذا ، بالطبع ، يمكنني أيضًا حساب الحجم هنا ، لكنني سأترك ذلك لكم.
‫لذلك إذا كنت تريد أن تفعل ذلك ، فلا تتردد.
‫حسنا.
‫لذلك هذا كيف يمكننا.
‫انطلق وأنشئ فئة ترث من فئة أخرى مجردة.
‫الآن ، كتحد صغير بالنسبة لك وسأوقف الفيديو مؤقتًا مرة واحدة ، يجب أن تبدأ
‫بالتحدي.
‫لذا فإن الفكرة الآن هي إنشاء شكل آخر ، وهو فئة أخرى موروثة من الشكل ، والشكل
‫يجب أن يكون كرة.
‫قم الآن بتنفيذ نفس النوع من الوظائف التي يمكنك رؤيتها هنا في Sphere.
‫حسنا.
‫حظا طيبا وفقك الله.
‫انشر الفيديو وحاول القيام بذلك.
‫حسنا.
‫لذلك أتمنى أن تكون قد جربتها.
‫سأقوم بإنشاء فصل دراسي جديد هنا وسأسمي هذه الفئة sphere dot CSS.
‫وهذه الفئة يجب أن تكون موروثة من الشكل.
‫وبالطبع ، أحتاج إلى تطبيق صفي الملخص ، مما يعني أنني بحاجة إلى تطبيق طريقة الحجم
‫هذه.
‫الآن يمكنني هنا بالطبع ، مرة أخرى حساب أو امتلاك خاصية ، لكن هذه المرة الخاصية المفيدة لن تكون الطول ،
‫لكنها ستكون في الواقع نصف القطر ، لأننا نحسب الحجم في الكرة بشكل
‫مختلف عما نحسبه في مكعب.
‫ونحن لم نفعل ذلك بالشكل لأن الشكل في حد ذاته لا يمكن أن يكون له حجم صحيح؟
‫إذا لم يتم تعريفه على أنه Y ، فلا يمكننا حساب حجمه ، دعنا نقول ، لأننا لا نعرف
‫نوع الشكل.
‫الصحيح.
‫لهذا السبب نحتاج إلى تلك الفئات التي ترث من الشكل والتي تنفذ الوظيفة.
‫الآن يمكنني المضي قدمًا وإنشاء مُنشئ ، مجال عام ، نصف قطر مزدوج.
‫إذن ، نحتاج إلى نصف قطر ثم يمكننا المضي قدمًا وتحديد اسم الكرة ، والتي يجب أن تكون
‫كرة ، ويجب أن يكون لدينا قيمة خاصية نصف القطر.
‫لذلك نحدد نصف القطر الذي تم تمريره إلينا على أنه قيمة نصف قطر الخاصية.
‫حسنًا ، بعد أن حصلنا على ذلك ، يمكننا حساب الحجم.
‫لذا بدلاً من طرح استثناء هنا ، أريد حساب حجم الكرة.
‫وللقيام بذلك ، أحتاج إلى PI وأحتاج إلى الحساب التالي.
‫إذن ، احسب نصف قطر pal هذا أس ثلاثة وكل ذلك مضروبًا في ثلاثة مقسومًا على أربعة مقسومًا على
‫ثلاثة.
‫حسنا.
‫هذه هي الطريقة التي نحسب بها الحجم ، والآن يمكننا المضي قدمًا وتنفيذ طريقة الحصول على المعلومات.
‫لذلك سأقوم بنسخ المعلومات من المكعب الخاص بي.
‫سأكون كسولاً.
‫لذا انسخ هذا الجزء هنا ونفذ نفس الشيء.
‫لذلك استخدمنا الكلمة الأساسية للتخطي مرة أخرى ، إنها بالضبط نفس الاسم كما كانت في فئة الشكل.
‫ونستخدم معلومات الكود الأساسي هنا للاتصال بأي طريقة كانت هنا.
‫لذا ، مهما كان شكل الجسم هناك ، فبدلاً من تمرير الطول أو قول شيء عن
‫الطول ، سنقول شيئًا عن نصف القطر والمكعب.
‫في هذه الحالة ، الكرة نصف قطرها.
‫حسنا.
‫الآن بعد أن أصبح لدينا كل ذلك ، ما يمكننا فعله الآن هو أنه يمكننا المضي قدمًا وإنشاء كائنات من كل
‫تلك الفئات المختلفة.
‫لذلك لن أقول مرحباً بالعالم هنا.
‫بدلاً من ذلك ، سأقوم بإنشاء مجموعة من الأشكال.
‫لذا سأقول ، حسنًا ، من فضلك أعطني مجموعة من الأشكال.
‫وستكون كرة جديدة نصف قطرها أربعة ومكعب جديد نصف قطرها ثلاثة.
‫وفي هذه الحالة ، يبلغ طوله ثلاثة لأن مكعب ليس له نصف قطر ، بل له
‫طول.
‫ثم أريد تنفيذ شيء ما لكل شكل من الأشكال.
‫لذلك بالنسبة للشكل في الأشكال ، أريد ذلك.
‫قم بالمرور عليها جميعًا في هذه الحالة ، فقط الاثنان منهم.
‫لكن ما أريد الحصول عليه هو تشكيل المعلومات.
‫لذا يجب استدعاء المعلومات وأريد كتابة شيء مثل هذا.
‫وفي هذه الحالة ، صفر.
‫سيكون الاسم وبعد ذلك أريد أن أظهر الحجم.
‫لذلك أريد أن يكون الاسم يحتوي على حجم.
‫وبعد ذلك ، بالطبع ، أريد أن أعرف حجم هذه القطعة التي ننظر إليها.
‫لذا قم بتشكيل الاسم وشكل الحجم.
‫لذا من المهم هنا أن نسمي طريقة الصوت ، أليس كذلك؟
‫إنه ليس مجرد ملف.
‫ملكية.
‫إذن لدينا خط أحمر لوحدة التحكم يحتوي على حجم في هذه الحالة يحتوي الاسم على حجم من الحجم.
‫لذلك سيحسب الحجم فقط.
‫حسنًا ، دعنا الآن نختبر هذا فقط.
‫دعنا فقط نرى ما يحدث هنا ، وما قمنا بإنشائه وما نحن عليه ، لذلك لدينا سطر
‫فارغ هنا.
‫ثم تقول ، هذه كرة.
‫نصف قطر الكرة أربعة.
‫حجم الكرة ٢٦٨. 08.
‫ثم هذا مكعب.
‫طول هذا المكعب ثلاثة.
‫حجم المكعب 27.
‫حسنا.
‫لذلك يمكنك أن ترى أن هذا رمز بسيط للغاية كتبناه هنا ، لكنه بالفعل يشرح أو يعرض معظم الوظائف التي
‫نحتاج إلى معرفتها حول الفئات المجردة.
‫الآن ، الشيء الرائع هو أنه يمكننا أيضًا استخدام المزيد من الكلمات الرئيسية التي لم نستخدمها بعد.
‫وبما أن هذا الفيديو أصبح طويلاً بما يكفي ، أود أن أقول إننا نفعل ذلك في الفيديو التالي.
‫لذا أراك هناك.