خلاصہ کلاس بمقام وراثت
 

خلاصہ کلاس اور وراثت دو اہم آبجیکٹ پر مبنی تصورات ہیں جو جاوا جیسی بہت سی آبجیکٹ پر مبنی پروگرامنگ زبانوں میں پائے جاتے ہیں۔ خلاصہ کلاس کو باقاعدہ (ٹھوس) کلاس کا خلاصہ ورژن سمجھا جاسکتا ہے ، جبکہ وراثت میں نئی ​​کلاسوں کو دوسری کلاسوں میں توسیع کی اجازت دی جاتی ہے۔ خلاصہ کلاس ایک ایسی کلاس ہے جسے شروع نہیں کیا جاسکتا لیکن اسے بڑھایا جاسکتا ہے۔ لہذا ، خلاصہ کلاسیں صرف اس لئے معنی خیز ہیں کہ اگر پروگرامنگ زبان وراثت کی حمایت کرتی ہے۔ جاوا میں ، خلاصہ کلاسز کو خلاصہ کلیدی الفاظ کا استعمال کرتے ہوئے قرار دیا جاتا ہے ، جبکہ ایکسٹینڈڈ کی ورڈ کو (سپر) کلاس سے وراثت میں استعمال کرنے کے لئے استعمال کیا جاتا ہے۔

خلاصہ کلاس کیا ہے؟

عام طور پر ، خلاصہ کلاسیں ، جنھیں Abstract बेस کلاسز (ABC) بھی کہتے ہیں ، کو انسٹیٹینٹ نہیں کیا جاسکتا (اس کلاس کی مثال نہیں بنائی جاسکتی ہے)۔ لہذا ، خلاصہ کلاسیں صرف اس لئے معنی خیز ہیں کہ اگر پروگرامنگ زبان وراثت کی حمایت کرتی ہو (کلاس میں توسیع سے سبکلاس بنانے کی صلاحیت)۔ خلاصہ کلاسز عموما an کسی تجریدی تصور یا وجود کی نمائندگی کرتی ہیں جس میں جزوی یا کوئی عمل درآمد نہیں ہوتا ہے۔ لہذا ، خلاصہ کلاسیں والدین کی کلاسوں کی حیثیت سے کام کرتی ہیں جہاں سے بچوں کی کلاسیں اخذ کی گئیں تاکہ چائلڈ کلاس والدین کی کلاس کی نامکمل خصوصیات کا اشتراک کرے گی اور ان کو مکمل کرنے کے لئے فعالیت کو شامل کیا جاسکتا ہے۔

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

وراثت کیا ہے؟

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

خلاصہ کلاس اور وراثت میں کیا فرق ہے؟

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