ما هو الفرق بين تمديد الفصل بما في ذلكه في فب؟

StackOverflow https://stackoverflow.com/questions/970762

  •  13-09-2019
  •  | 
  •  

سؤال

يمكن للشخص أن يفسر لي ما الفرق بين

include_once 'classb.php'
class A
{
     $a = new B
}

و

class A extends B
{
     $a = new B
}

يكون؟

ما هي مزايا / العيوب الموجودة لتوسيع درجة فئة مقابل بما في ذلك ملف .php؟

هل كانت مفيدة؟

المحلول

لك include_once يقرأ في ملف مصدر، والتي في هذه الحالة يفترض وجود تعريف فئة B فيه. لك extends إعداد الصف A كما الميراث صف دراسي B, ، بمعنى آخر A يحصل كل شيء في B ويمكن ذلك بعد ذلك تحديد تعديلاتها الخاصة لهذا الهيكل الأساسي. لا توجد أي علاقة على الإطلاق بين العمليات الخاصة بك $a = new B العمليات غير رسمية (نذكر أخطاء بناء الجملة).

نصائح أخرى

في حال كنت تبحث عن إجابة أعلى مستوى ...

باستخدام REMENDS BINDS أ لفعل الأشياء بالمثل ب، في حين أن إنشاء مثيل B داخل A لا يفرض أي قيود على A.

يسمى النهج الثاني التكوين وهو ما هو النهج المفضل في بناء نظم OO لأنه لا يؤدي إلى تسلسل هرمي طويل القامة وهو أكثر مرونة على المدى الطويل. ومع ذلك، فإنها تسفر عن رمز أبطأ قليلا، وأكثر من ذلك من الاستخدام البسيط للتمديد.

بلدي 2 سنتا

ثانيا، أي تمديد، - هي عملية الطبقة. أولا، أي تشمل - عملية الملفات، (قبل الترجمة).

لذلك - الثاني غير ممكن على الإطلاق. دون أولا.

بادئ ذي بدء، قم بتضمين أمر يقرأ ملف مصدر PHP ويعامله كما هو مكتوب بدلا من توجيه التوجيه. يمكنك استخدامه على أي ملف مصدر PHP ولا يتعلق بميراث الفئة.

بالمناسبة، إذا لم تقم بتضمين الملف الذي يحتوي على فئة رمز مصدر لا يمكنك تقديم هذه الفئة.

تمديد فئة مع الكلمة الرئيسية يمتد يعني مفهوم الوراثة التي هي مفهوم رئيسي في البرمجة الموجهة للكائنات.

تحصل على فئة (أ) مع بعض الأساليب وتحتاج إلى فئة مماثلة (B) مع سلوك مختلف قليلا، يمكنك أن تستمد تمديد الفئة الجديدة للفئة A وتعديل الطرق التي يجب أن تتغير فقط (يسمى تجاوز) أو مضيفا جديدة.

في مقابل ميراث هنالك ال تعبير. وبعد مع التركيب، لا تقدم فئة لتغيير سلوكه بدلا من ذلك، عليك القيام بعملية خليط للفئات من أجل الحصول على السلوك المطلوب.

على ويكيبيديا يمكنك العثور على تفسير أفضل على تكوين الكائن و [ميراث الطبقة] (http://en.wikipedia.org/wiki/inheritance_(Computer_science))

يبدو أن هناك القليل من الارتباك على هذه المفاهيم، كما يمكنك تمديد الفصل الدراسي الخاص بك، وفي الوقت نفسه، تحاول إنشاء ذلك (بالمناسبة، بناء الجملة الصحيح هو $ a = جديد b ()؛).

مرجع مفيد، من الواضح، [GOF، أنماط التصميم] (http://en.wikipedia.org/wiki/design_patterns_(batter)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top