كيفية استخدام الوراثة في C #

Kyfyt Astkhdam Alwratht Fy C



أثناء كتابة التعليمات البرمجية بلغة برمجة موجهة للكائنات ، قد نواجه مواقف نحتاج فيها إلى إعادة استخدام التعليمات البرمجية الموجودة في فئة جديدة أو إضافة وظائف إضافية إلى فصل دراسي موجود. في مثل هذه الحالات ، يكون الميراث في متناول اليد. الوراثة في البرمجة الشيئية تسمح للفئات بأن ترث خصائص وسلوك فئة أخرى. تتناول هذه المقالة استخدام الميراث في C # وأنواعها المختلفة.

جدول المحتويات

ما هو الميراث في سي #

كيف يعمل الميراث في C #







أنواع الميراث في C #



خاتمة



ما هو الميراث في سي #

في C # باستخدام الوراثة ، يمكن لفئة ما أن تأخذ أو ترث خصائص وطرق فئة أخرى. بمعنى آخر ، يسمح بإنشاء فئة جديدة بناءً على فئة موجودة ، والتي تُعرف بالفئة الأساسية أو الفئة الفائقة. تسمى الفئة التي تشكلت بعد أخذ خصائص الفئة الأساسية فئة مشتقة أو فئة فرعية.





لا تأخذ هذه الفئة المشتقة في C # خصائص الفئة الأساسية فحسب ، بل يمكنها أيضًا إضافة ميزاتها الفريدة.

كيف يعمل الميراث في C #

في C # ، يتم تحقيق الميراث من خلال استخدام القولون (:) رمز. يتم تعريف اسم الفئة الأساسية بعد النقطتين ، ويتم تحديده بواسطة الفئة المشتقة.



ما يلي هو بناء الجملة لإنشاء فئة مشتقة تأخذ خصائص من الفئة الأساسية:

فئة مشتقة : BaseClass

{

// أعضاء الفصل المشتق

}

هنا في هذا الكود ، فئة مشتقة هو اسم الفئة المشتقة ، و BaseClass هو اسم الفئة الأساسية. ال : يشير الرمز إلى أن DerivedClass يرث من BaseClass. يمكن لأعضاء DerivedClass الوصول إلى أعضاء BaseClass ، بشرط ألا يكونوا خاصين.

أنواع الميراث في C #

يدعم C # أربعة أنواع من الميراث: الميراث الفردي والمتعدد المستويات والتسلسل الهرمي والمتعدد. دعونا نلقي نظرة على كل نوع.

الميراث الواحد

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

على سبيل المثال، يشرح الكود المعطى التسلسل الهرمي للفئة ويوضح مفاهيم الوراثة.

باستخدام النظام ؛

باستخدام النظام ؛
فئة السيارات
{
عام فارغ يبدأ ( )
{
وحدة التحكم. اكتب ( 'السيارة بدأت' ) ؛
}
}
فئة تسلا : سيارة
{
عام فارغ التعجيل ( )
{
وحدة التحكم. اكتب ( تسلا تسلا ) ؛
}
}
برنامج الفصل
{
ثابتة فارغ رئيسي ( خيط [ ] أرجس )
{
تسلا ماي تيسلا = تسلا الجديدة ( ) ؛
myTesla. يبدأ ( ) ؛ // الإخراج: السيارة بدأت
myTesla. التعجيل ( ) ؛ // الإخراج: تسلا متسارعة
}
}

في الكود أعلاه ، فإن ملف فئة السيارة هي الفئة الأساسية ولها طريقة تسمى يبدأ() ، والذي يقوم ببساطة بطباعة الرسالة بدأت السيارة إلى وحدة التحكم.

ال فئة تسلا مشتق من فئة السيارات ، ويأخذ جميع خصائص فئة السيارة. تضيف فئة Tesla طريقة تسمى تسريع () ، الذي يطبع الرسالة تسلا متسارعة إلى وحدة التحكم.

ال رئيسي() تحدد الوظيفة مثيلًا لفئة تسلا تسمى myTesla ويستدعي أساليب Start () و Accelerate ().

الوراثة متعددة المستويات

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

على سبيل المثال، يوضح كود C # التالي الوراثة وتجاوز الأسلوب في التسلسل الهرمي للفئة.

باستخدام النظام ؛
فئة الحيوان
{
عام فارغ يأكل ( )
{
وحدة التحكم. اكتب ( 'أكل الحيوانات' ) ؛
}
}
فئة الثدييات : حيوان
{
عام فارغ يجري ( )
{
وحدة التحكم. اكتب ( 'الجري الثدييات' ) ؛
}
}
فئة الكلب : الحيوان الثديي
{
عام فارغ نباح ( )
{
وحدة التحكم. اكتب ( 'كلب ينبح' ) ؛
}
}
برنامج الفصل
{
ثابتة فارغ رئيسي ( خيط [ ] أرجس )
{
الكلب myDog = كلب جديد ( ) ؛
كلبي. يأكل ( ) ؛ // المخرجات: أكل الحيوانات
كلبي. يجري ( ) ؛ // الإخراج: تشغيل الثدييات
كلبي. نباح ( ) ؛ // الإخراج: كلب ينبح
}
}

هنا كلب هي فئة مشتقة ترث من الحيوان الثديي والتي بدورها ترث من حيوان . يمكن لفئة الكلاب الوصول إلى جميع خصائص وأساليب وسلوكيات الثدييات والحيوانات ، ويمكنها أيضًا تحديد أسلوبها الفريد نباح() .

ال فئة الحيوانات هي الفئة الأساسية ولها طريقة تسمى يأكل() ، والتي تطبع ببساطة الرسالة طعام الحيوانات على وحدة التحكم.

ال فئة الثدييات مشتق من فئة الحيوان ويضيف طريقة تسمى يجري() ، والتي تطبع الرسالة Mammal تعمل على وحدة التحكم.

ال فئة الكلب مشتق من فئة الثدييات ويضيف طريقة تسمى نباح() ، والتي تطبع الرسالة Dog barking to the console.

طريقة Main () تنشئ مثيلاً لفئة Dog تسمى كلبي ويستدعي أساليب Eat () و Run () و Bark ().

لاحظ أن أساليب Eat () و Run () لم يتم تعريفها في فئة Dog ، ولكنها موروثة من فصولها الأصلية حيوان و الحيوان الثديي ، على التوالى. ال نباح() يتم تعريف الطريقة فقط في فئة الكلب.

  نص
تم إنشاء الوصف تلقائيًا

الوراثة الهرمية

في الوراثة الهرمية ، يتم توريث أعداد مختلفة من الفئات المشتقة من فئة أساسية واحدة فقط. على سبيل المثال:

باستخدام النظام ؛
شكل الطبقة
{
عام فارغ يرسم ( )
{
وحدة التحكم. اكتب ( 'شكل الرسم' ) ؛
}
}
فئة الدائرة : شكل
{
عام فارغ يملأ ( )
{
وحدة التحكم. اكتب ( 'دائرة الملء' ) ؛
}
}
كلاس سكوير : شكل
{
عام فارغ لون ( )
{
وحدة التحكم. اكتب ( 'مربع التلوين' ) ؛
}
}
برنامج الفصل
{
ثابتة فارغ رئيسي ( خيط [ ] أرجس )
{
ضع دائرة حول myCircle = دائرة جديدة ( ) ؛
myCircle. يرسم ( ) ؛ // الإخراج: رسم الشكل
myCircle. يملأ ( ) ؛ // الإخراج: ملء الدائرة

مربع ماي سكوير = ساحة جديدة ( ) ؛
ماي سكوير. يرسم ( ) ؛ // الإخراج: رسم الشكل
ماي سكوير. لون ( ) ؛ // الإخراج: مربع التلوين
}
}

في الكود أعلاه ، كلاهما دائرة و مربع هي فئات مشتقة ترث منها شكل . لديهم حق الوصول إلى طريقة Draw () المحددة في Shape ويمكنهم أيضًا تحديد أساليبهم الفريدة Fill () و Color ().

هنا أنشأنا كائنًا من فئة الدائرة المسمى myCircle وكائن من مربع فئة اسمه ماي سكوير . ثم نسمي يرسم() الطريقة ، الموروثة من فئة الشكل ، على كلا الكائنين.

بعد ذلك ، نسمي يملأ() الطريقة في myCircle الخاصة بفئة الدائرة و لون() طريقة mySquare الخاصة بالفئة المربعة.

ستتم طباعة الإخراج على وحدة التحكم على النحو التالي:

  نص
تم إنشاء الوصف تلقائيًا بثقة متوسطة

تعدد الميراث

الوراثة المتعددة هي المكان الذي ترث فيه فئة مشتقة من فئات أساسية متعددة. ومع ذلك ، لا تدعم C # الميراث المتعدد. لتحقيق وظائف مماثلة ، يستخدم C # واجهات .

خاتمة

يسمح الوراثة في C # للفئات أن ترث السلوك والوظائف من الفئات الأساسية. باستخدام الوراثة ، يمكننا إعادة استخدام الكود وإنشاء تدفق هرمي داخل البرنامج. من خلال فهم الأنواع المختلفة للوراثة ، يمكن للمرء كتابة كود أكثر كفاءة وتنظيمًا يسهل الحفاظ عليه وتوسيعه.