سنگل وراثت بمقابلہ ایک سے زیادہ ورثہ

مصنف: Laura McKinney
تخلیق کی تاریخ: 4 اپریل 2021
تازہ کاری کی تاریخ: 11 مئی 2024
Anonim
C++ میں ایک سے زیادہ وراثت ابہام اور ریزولوشن کے ساتھ | ابتدائی افراد کے لیے C++ پروگرامنگ
ویڈیو: C++ میں ایک سے زیادہ وراثت ابہام اور ریزولوشن کے ساتھ | ابتدائی افراد کے لیے C++ پروگرامنگ

مواد

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


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

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


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

مشمولات: سنگل وراثت اور ایک سے زیادہ ورثہ میں فرق

  • موازنہ چارٹ
  • سنگل وراثت
  • متعدد وراثت
  • کلیدی اختلافات
  • نتیجہ اخذ کرنا
  • وضاحتی ویڈیو

موازنہ چارٹ

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

متعدد وراثت میں ، اخذ کردہ کلاس ایک سے زیادہ بیس کلاس سے وراثت میں آتا ہے۔


 

محفوظواحد وراثت متعدد وراثت سے زیادہ محفوظ ہےمتعدد وراثت کو نافذ کرنا محفوظ نہیں ہے
رسائیکسی ایک طبقے کی واحد ورثہ میں ورثہ ہوتا ہےمتعدد کلاسوں کے متعدد وراثت میں ہونے والی خصوصیات میں وراثت مل سکتی ہے
رن ٹائم اکیلا وراثت میں زیادہ رن ٹائم کی ضرورت ہوتی ہےمتعدد وراثت میں کم وقت کی ضرورت ہوتی ہے

سنگل وراثت

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

متعدد وراثت

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

کلیدی اختلافات

  1. واحد وراثت میں ، اخذ کردہ طبقے کو صرف ایک واحد طبقاتی ورثہ میں ملتا ہے جبکہ متعدد وراثت میں ، اخذ کردہ طبقہ ایک سے زیادہ بیس کلاس سے وراثت میں آتا ہے۔
  2. واحد وراثت متعدد وراثت سے زیادہ محفوظ ہے جبکہ متعدد وراثت کو نافذ کرنا محفوظ نہیں ہے۔
  3. ایک ہی طبقے کی واحد ورثہ میں ورثہ دیا جاتا ہے جبکہ متعدد طبقات کی متعدد وراثت کی خصوصیات میں وراثت کی جاسکتی ہے۔
  4. واحد وراثت میں زیادہ رن ٹائم کی ضرورت ہوتی ہے جبکہ متعدد وراثت میں کم رن ٹائم کی ضرورت ہوتی ہے

نتیجہ اخذ کرنا

مذکورہ مضمون میں ہم عمل درآمد کے ساتھ واحد وراثت اور متعدد وراثت میں واضح فرق دیکھتے ہیں

وضاحتی ویڈیو