C# میں وراثت کا استعمال کیسے کریں

C My Wratht Ka Ast Mal Kys Kry



آبجیکٹ اورینٹڈ پروگرامنگ لینگویج میں کوڈ لکھتے وقت، ہم ایسے حالات سے گزر سکتے ہیں جہاں ہمیں موجودہ کوڈ کو نئی کلاس میں دوبارہ استعمال کرنے یا موجودہ کلاس میں اضافی فعالیت شامل کرنے کی ضرورت ہو۔ ایسے میں وراثت کام آتی ہے۔ آبجیکٹ اورینٹڈ پروگرامنگ میں وراثت کلاسوں کو کسی دوسرے طبقے کی خصوصیات اور طرز عمل کو وراثت میں ملنے کی اجازت دیتی ہے۔ یہ مضمون C# میں وراثت کے استعمال اور اس کی مختلف اقسام کا احاطہ کرتا ہے۔

فہرست کا خانہ

C# میں وراثت کیا ہے

C# میں وراثت کیسے کام کرتی ہے







C# میں وراثت کی اقسام



نتیجہ



C# میں وراثت کیا ہے

C# میں وراثت کا استعمال کرتے ہوئے، ایک طبقہ دوسری کلاس کی خصوصیات اور طریقوں کو لے سکتا ہے یا وراثت میں لے سکتا ہے۔ دوسرے لفظوں میں، یہ موجودہ کلاس کی بنیاد پر ایک نئی کلاس بنانے کی اجازت دیتا ہے، جسے بیس کلاس یا سپر کلاس کہا جاتا ہے۔ بیس کلاس کی خصوصیات لینے کے بعد بننے والی کلاس کو کہا جاتا ہے۔ ایک اخذ شدہ کلاس یا ذیلی کلاس۔





C# میں یہ اخذ شدہ کلاس نہ صرف بیس کلاس کی خصوصیات لیتی ہے بلکہ اپنی منفرد خصوصیات بھی شامل کر سکتی ہے۔

C# میں وراثت کیسے کام کرتی ہے

C# میں، وراثت بڑی آنت کے استعمال سے حاصل کی جاتی ہے۔ (:) علامت بیس کلاس کا نام بڑی آنت کے بعد بیان کیا جاتا ہے، اور یہ اخذ شدہ کلاس کے ذریعہ بیان کیا جاتا ہے۔



ایک اخذ شدہ کلاس بنانے کے لیے درج ذیل نحو ہے جو کہ بنیادی طبقے سے خصوصیات لیتا ہے:

کلاس DerivedClass : بیس کلاس

{

// ماخوذ کلاس کے ارکان

}

یہاں اس کوڈ میں، ماخوذ کلاس اخذ شدہ کلاس کا نام ہے، اور بیس کلاس بیس کلاس کا نام ہے۔ دی : علامت اشارہ کرتی ہے کہ DerivedClass BaseClass سے وراثت میں مل رہا ہے۔ DerivedClass کے اراکین BaseClass کے اراکین تک رسائی حاصل کر سکتے ہیں، بشرطیکہ وہ نجی نہ ہوں۔

C# میں وراثت کی اقسام

C# وراثت کی چار اقسام کی حمایت کرتا ہے: سنگل، ملٹی لیول، درجہ بندی، اور ایک سے زیادہ وراثت۔ آئیے ہر ایک قسم کو دیکھیں۔

سنگل وراثت

سنگل وراثت وراثت کی سب سے عام قسم ہے، جہاں ایک اخذ شدہ کلاس صرف ایک بنیادی طبقے کی خصوصیات لیتی ہے یا وراثت میں ملتی ہے۔

مثال کے طور پر، دیا گیا کوڈ طبقاتی درجہ بندی کی وضاحت کرتا ہے اور وراثت کے تصورات کو ظاہر کرتا ہے۔

سسٹم کا استعمال کرتے ہوئے ;

سسٹم کا استعمال کرتے ہوئے ;
کلاس کار
{
عوام باطل شروع کریں۔ ( )
{
تسلی. رائٹ لائن ( 'گاڑی اسٹارٹ ہوئی' ) ;
}
}
کلاس Tesla : گاڑی
{
عوام باطل تیز کرنا ( )
{
تسلی. رائٹ لائن ( 'ٹیسلا کو تیز کرنا' ) ;
}
}
کلاس پروگرام
{
جامد باطل مرکزی ( تار [ ] args )
{
ٹیسلا مائی ٹیسلا = نیا ٹیسلا ( ) ;
مائی ٹیسلا شروع کریں۔ ( ) ; // آؤٹ پٹ: کار شروع ہوگئی
مائی ٹیسلا تیز کرنا ( ) ; // آؤٹ پٹ: ٹیسلا تیز کرنا
}
}

مندرجہ بالا کوڈ میں، کار کی کلاس بیس کلاس ہے اور اس کا ایک طریقہ ہے۔ شروع کریں () ، جو صرف پیغام کو پرنٹ کرتا ہے۔ گاڑی اسٹارٹ ہوئی۔ کنسول پر

دی ٹیسلا کلاس کار کلاس سے ماخوذ ہے، اور یہ کار کلاس کی تمام خصوصیات لیتا ہے۔ ٹیسلا کلاس میں ایک طریقہ شامل کیا جاتا ہے جسے کہا جاتا ہے۔ تیز کریں() ، جو پیغام کو پرنٹ کرتا ہے۔ ٹیسلا کو تیز کرنا کنسول پر

دی مرکزی() فنکشن ٹیسلا کلاس کی ایک مثال کی وضاحت کرتا ہے۔ مائی ٹیسلا اور اس کے Start() اور Accelerate() طریقوں کو کال کرتا ہے۔

ملٹی لیول وراثت

ملٹی لیول وراثت وہ ہے جہاں ایک اخذ شدہ کلاس دوسری اخذ شدہ کلاس سے وراثت میں ملتی ہے، جو بدلے میں بیس کلاس سے وراثت میں ملتی ہے۔

مثال کے طور پر، درج ذیل C# کوڈ طبقاتی درجہ بندی میں وراثت اور طریقہ کار کو ظاہر کرتا ہے۔

سسٹم کا استعمال کرتے ہوئے ;
کلاس جانور
{
عوام باطل کھاؤ ( )
{
تسلی. رائٹ لائن ( 'جانوروں کا کھانا' ) ;
}
}
کلاس ممالیہ : جانور
{
عوام باطل رن ( )
{
تسلی. رائٹ لائن ( 'ممالیہ چل رہا ہے' ) ;
}
}
کلاس کتا : ممالیہ
{
عوام باطل چھال ( )
{
تسلی. رائٹ لائن ( 'کتے کا بھونکنا' ) ;
}
}
کلاس پروگرام
{
جامد باطل مرکزی ( تار [ ] args )
{
کتا مائی ڈاگ = نیا کتا ( ) ;
میرا کتا کھاؤ ( ) ; // آؤٹ پٹ: جانوروں کا کھانا
میرا کتا رن ( ) ; // آؤٹ پٹ: ممالیہ چل رہا ہے۔
میرا کتا چھال ( ) ; // آؤٹ پٹ: کتے کا بھونکنا
}
}

یہاں کتا ایک اخذ کردہ کلاس ہے جو وراثت میں ملتی ہے۔ ممالیہ ، جو بدلے میں وراثت میں ملتا ہے۔ جانور . ڈاگ کلاس کو ممالیہ اور جانوروں کی تمام خصوصیات، طریقوں اور رویے تک رسائی حاصل ہے، اور وہ اپنے منفرد طریقہ کی وضاحت بھی کر سکتی ہے۔ چھال () .

دی جانوروں کی کلاس بیس کلاس ہے اور اس کا ایک طریقہ ہے۔ کھاؤ() ، جو کنسول میں جانوروں کے کھانے کے پیغام کو آسانی سے پرنٹ کرتا ہے۔

دی ممالیہ کلاس اینیمل کلاس سے ماخوذ ہے اور ایک طریقہ شامل کرتا ہے جسے کہتے ہیں۔ رن() ، جو کنسول پر چلنے والے میمل کے پیغام کو پرنٹ کرتا ہے۔

دی کتے کی کلاس Mammal کلاس سے ماخوذ ہے اور ایک طریقہ شامل کرتا ہے جسے کہتے ہیں۔ چھال () ، جو کنسول پر کتے کے بھونکنے کے پیغام کو پرنٹ کرتا ہے۔

مین () طریقہ ڈاگ کلاس کی ایک مثال بناتا ہے جسے کہا جاتا ہے۔ میرا کتا اور اس کے Eat()، Run()، اور Bark() طریقوں کو کہتے ہیں۔

نوٹ کریں کہ Eat() اور Run() طریقے ڈاگ کلاس میں بیان نہیں کیے گئے ہیں، بلکہ اس کی پیرنٹ کلاسز سے وراثت میں ملے ہیں۔ جانور اور ممالیہ بالترتیب دی چھال () طریقہ صرف ڈاگ کلاس میں بیان کیا گیا ہے۔

  متن
تفصیل خود بخود تیار ہو گئی۔

درجہ بندی کی وراثت

درجہ بندی کی وراثت میں، اخذ شدہ کلاسوں کی مختلف تعداد صرف ایک بیس کلاس سے وراثت میں ملتی ہے۔ مثال کے طور پر:

سسٹم کا استعمال کرتے ہوئے ;
کلاس شکل
{
عوام باطل ڈرا ( )
{
تسلی. رائٹ لائن ( 'ڈرائنگ شکل' ) ;
}
}
کلاس سرکل : شکل
{
عوام باطل بھرنا ( )
{
تسلی. رائٹ لائن ( 'حلقہ بھرنا' ) ;
}
}
کلاس اسکوائر : شکل
{
عوام باطل رنگ ( )
{
تسلی. رائٹ لائن ( 'رنگنے والا مربع' ) ;
}
}
کلاس پروگرام
{
جامد باطل مرکزی ( تار [ ] args )
{
میرے سرکل کو دائرہ بنائیں = نیا حلقہ ( ) ;
میرا سرکل ڈرا ( ) ; // آؤٹ پٹ: ڈرائنگ کی شکل
میرا سرکل بھرنا ( ) ; // آؤٹ پٹ: دائرہ بھرنا

مربع mySquare = نیا چوک ( ) ;
mySquare ڈرا ( ) ; // آؤٹ پٹ: ڈرائنگ شکل
mySquare رنگ ( ) ; // آؤٹ پٹ: رنگنے والا مربع
}
}

مذکورہ کوڈ میں، دونوں دائرہ اور مربع اخذ کردہ کلاسز ہیں جن سے وراثت ملتی ہے۔ شکل . انہیں شکل میں بیان کردہ Draw() طریقہ تک رسائی حاصل ہے اور وہ اپنے منفرد طریقوں Fill() اور Color() کی بھی وضاحت کر سکتے ہیں۔

یہاں ہم نے سرکل کلاس کا ایک آبجیکٹ بنایا جس کا نام ہے۔ میرا سرکل اور کا ایک اعتراض مربع کلاس کا نام دیا mySquare . ہم پھر کال کرتے ہیں ڈرا () طریقہ، جو دونوں اشیاء پر شکل کلاس سے وراثت میں ملا ہے۔

اگلا، ہم کال کرتے ہیں بھریں() myCircle پر طریقہ، جو سرکل کلاس کے لیے مخصوص ہے، اور رنگ() mySquare پر طریقہ، جو مربع کلاس کے لیے مخصوص ہے۔

آؤٹ پٹ کو کنسول پر پرنٹ کیا جائے گا جیسا کہ ذیل میں:

  متن
تفصیل درمیانے اعتماد کے ساتھ خود بخود تیار کی گئی ہے۔

ایک سے زیادہ وراثت

ایک سے زیادہ وراثت وہ ہے جہاں ایک اخذ شدہ کلاس متعدد بیس کلاسوں سے وراثت میں ملتی ہے۔ تاہم، C# متعدد وراثت کی حمایت نہیں کرتا ہے۔ اسی طرح کی فعالیت کو حاصل کرنے کے لیے، C# استعمال کرتا ہے۔ انٹرفیس .

نتیجہ

C# میں وراثت کلاسوں کو بیس کلاسز سے رویے اور فعالیت کو وراثت میں لینے کی اجازت دیتی ہے۔ وراثت کا استعمال کرتے ہوئے، ہم کوڈ کو دوبارہ استعمال کر سکتے ہیں اور پروگرام کے اندر ایک درجہ بندی کا بہاؤ بنا سکتے ہیں۔ وراثت کی مختلف اقسام کو سمجھ کر، کوئی زیادہ موثر اور منظم کوڈ لکھ سکتا ہے جسے برقرار رکھنا اور بڑھانا آسان ہے۔