فرق <خلاصہ اور خلاصہ کے درمیان

Anonim

مجازی بمقابلہ خلاصہ

مجازی اور خلاصہ موجود ہیں توچہ سب سے زیادہ آبادی (OO) پروگرامنگ زبانوں جیسے جاوا اور سی # میں استعمال ہونے والے الفاظ ہیں. اگرچہ مختلف زبانوں میں اس کا مطلب یہ ہے کہ مجازی اور خلاصہ الفاظ دونوں میں تھوڑا اختلافات موجود ہیں، جو ان سے منسلک اداروں پر جزوی عمل درآمد کا احساس فراہم کرتی ہیں.

خلاصہ

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

مجازی

مجازی طریقوں / افعال اختیاری طبقاتی طور پر اس کے رویے کو اختیار کرنے کی صلاحیت فراہم کرتا ہے (ایک ہی دستخط کے ساتھ ایک تقریب کا استعمال کرتے ہوئے). مندرجہ ذیل منظر نامے میں مجازی فنکشن کا تصور اہم ہے. فرض کریں کہ طبقے کو ایک طبقے کی طرف سے حاصل کیا جاسکتا ہے، اس وقت جب جب متوقع طبقے کا استعمال ہوتا ہے تو یہ بیس بیس کلاس یا حاصل کردہ طبقہ کی شناخت کا حوالہ دیتے ہیں. لیکن، بیس کا طریقہ رویہ متنازعہ ہوسکتا ہے اگر بیس کلاس کے طریقہ کار کو ختم کردیا جائے. لہذا، اس مساوات کو حل کرنے کے لئے، مجازی مطلوبہ الفاظ استعمال کیا جاتا ہے. اگر طریقہ ورچوئل نشان لگایا گیا ہے، تو حاصل شدہ کلاس کی تقریب (اگر کوئی ہے) کہا جاتا ہے یا پھر بیس بیس کی تقریب کو کہا جاتا ہے. مثال کے طور پر، C ++ میں، مجازی مطلوبہ الفاظ کو اس مقصد کے لئے بالکل استعمال کیا جاتا ہے. C # میں، مجازی مطلوبہ الفاظ کو اسی طرح سے استعمال کیا جاتا ہے، لیکن اس کے علاوہ، مطلوبہ الفاظ کے اوورائڈ کو استعمال کرنے کے لئے تمام اوورائزر کردہ طریقوں میں ترمیم کرنا چاہئے.لیکن جاوا میں، کوئی واضح مجازی مطلوبہ الفاظ نہیں ہے. تمام غیر مستحکم طریقوں کو مجازی سمجھا جاتا ہے. کوئی جسم کے ساتھ مجازی افعال خالص ورچوئل افعال نام نہیں دیا جاتا ہے. جاوا اور سی # میں، خلاصہ طریقوں حقیقت میں خالص مجازی ہیں.

ورچوئل اور خلاصہ کے درمیان فرق

اگرچہ خلاصہ اور مجازی دو مطلوبہ الفاظ / تصورات ہیں جو اس کے متعلقہ اداروں کو ناممکن عمل کے معنی فراہم کرتے ہیں، ان کے اختلافات ہیں. خلاصہ طریقوں (جو خلاصہ طبقات کے اندر بیان کی جانی چاہئے) اس پر عملدرآمد نہیں ہے، جبکہ مجازی طریقوں پر عمل درآمد ہوسکتا ہے. اگر کنکریٹ کلاس کی طرف سے خلاصہ طریقوں کو توسیع دی جاتی ہے تو، تمام وراثت شدہ خلاصہ طریقوں کو لاگو کرنا لازمی ہے، جبکہ ورثی طریقوں سے وراثت ہوسکتا ہے یا ختم نہیں ہوسکتا.