تجریدی کلاس بمقابلہ کنکریٹ کلاس

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

کنکریٹ کلاس کیا ہے؟

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

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

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

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

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

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