جاوا پروگرامنگ زبان میں وراثت کی تلاش

جاوا پروگرامنگ زبان میں وراثت کی تلاش

وراثت آبجیکٹ پر مبنی پروگرامنگ کے بنیادی تصورات میں سے ایک ہے۔ پروگرامنگ میں ، وراثت کا لفظ ایک ایسے رشتے کی نمائندگی کرتا ہے جس میں ایک چائلڈ کلاس والدین کی کلاس اور ریاست کے رویے کو مانتی ہے۔





سافٹ ویئر ڈویلپمنٹ میں وراثت کا مقصد محفوظ اور قابل اعتماد سافٹ وئیر کے دوبارہ استعمال کو آسان بنانا ہے۔ وراثت کے استعمال کا ایک بڑا فائدہ یہ ہے کہ یہ آپ کے پروگراموں میں فالتو کوڈ کو ختم کرتا ہے۔





سائن اپ کے بغیر مفت مووی اسٹریمنگ۔

وراثت کیسے کام کرتی ہے

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





وراثت کیسے کام کرتی ہے اس کی ایک حقیقی دنیا کی مثال پھلوں پر غور کرنا ہوگی۔ یہ ایک وسیع لیبل ہے جو مختلف اشیاء کی ایک رینج کا احاطہ کرتا ہے۔

سیب ایک پھل ہے اور اسی طرح سنتری۔ تاہم ، ایک سنتری ایک سیب نہیں ہے ، لہذا اگر آپ کسی اسٹور کے مالک ہیں تو آپ کے پاس اسٹاک آئٹمز میں سے ایک کے طور پر پھل نہیں ہوں گے۔ شاید آپ اپنی انوینٹری میں پھلوں کا سیکشن رکھ سکتے ہیں ، اور اس سیکشن کے تحت ، آپ کے پاس سیب اور سنتری جیسی زیادہ مخصوص اشیاء ہوں گی۔



اس طرح وراثت کام کرتی ہے۔

جاوا میں وراثت کا استعمال

وراثت کسی بھی پروگرامنگ زبان میں استعمال کی جاسکتی ہے جو آبجیکٹ پر مبنی پروگرامنگ کی مثال استعمال کرتی ہے۔ تاہم ، وراثت کے استعمال کا صحیح طریقہ مخصوص پروگرامنگ زبان پر منحصر ہے۔





مثال کے طور پر، C ++ ایک آبجیکٹ پر مبنی پروگرامنگ زبان بھی ہے۔ . C ++ اس کی حمایت کرتا ہے جسے متعدد وراثت کہا جاتا ہے ، جبکہ جاوا صرف واحد وراثت کی حمایت کرتا ہے۔

اس کا مطلب یہ ہے کہ جاوا میں والدین کی ایک کلاس میں کئی بچوں کی کلاسیں ہو سکتی ہیں ، لیکن ہر بچے کی کلاس میں صرف ایک ہی والدین کی کلاس (واحد وراثت) ہو سکتی ہے۔ تاہم ، جاوا میں بالواسطہ متعدد وراثت حاصل کرنے کا ایک طریقہ ہے ، دادا دادی ، والدین اور بچے کا رشتہ پیدا کرکے۔





جاوا میں پیرنٹ کلاس بنانا۔

سافٹ ویئر کی ضروریات کی دستاویز سے والدین کی کلاس کے انتخاب کے عمل کو آبجیکٹ پر مبنی تجزیہ کہا جاتا ہے۔ اس عمل کے دوران جملے کو اکثر وراثت کے ممکنہ تعلقات کی شناخت کے لیے استعمال کیا جاتا ہے۔ ہماری مندرجہ بالا مثال سے آپ کو یہ دیکھنے کے قابل ہونا چاہئے کہ پھل ہماری والدین کی کلاس ہوگا۔

پھل والدین کی کلاس کی مثال


public class Fruit {
//Variable Declaration
protected String seed;
protected String skinColor;
protected String taste;
//Default Constructor
public Fruit(){
seed = '';
skinColor ='';
taste ='';
}
//Primary Constructor
public Fruit(String seed, String skinColor, String taste){
this.seed = seed;
this.skinColor = skinColor;
this.taste = taste;
}
//getters and setters
public String getSeed() {
return seed;
}
public void setSeed(String seed) {
this.seed = seed;
}
public String getSkinColor() {
return skinColor;
}
public void setSkinColor(String skinColor) {
this.skinColor = skinColor;
}
public String getTaste() {
return taste;
}
public void setTaste(String taste) {
this.taste = taste;
}
//eat method
public void eat(){
//general code on how to eat a fruit
}
//juice method
public void juice() {
//general code on how to juice a fruit
}
}

مندرجہ بالا پیرنٹ کلاس کے سب سے قابل ذکر پہلوؤں میں سے ایک ایکسیس موڈیفائر ہے جو ہر متغیر اعلان کے ساتھ استعمال ہوتا ہے۔ محفوظ رسائی میں ترمیم کرنے والا والدین کی کلاسوں میں استعمال کے لیے مثالی ہے کیونکہ یہ غیر بچوں کی کلاسوں کو والدین کی کلاس کے ڈیٹا کی خصوصیات تک رسائی حاصل کرنے سے روکتا ہے۔

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

جاوا میں بچوں کی کلاسیں بنانا

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

ہماری مثال کو جاری رکھتے ہوئے ، آپ کو یہ دیکھنے کے قابل ہونا چاہیے کہ سنتری مندرجہ بالا پھلوں کی کلاس کا مناسب بچہ کیوں ہوگا۔

اورنج چائلڈ کلاس کی مثال


public class Orange extends Fruit{
//variable declaration
private int supremes;
//default constructor
public Orange() {
supremes = 0;
}
//primary constructor
public Orange(String seed, String skinColor, String taste, int supremes){
super(seed, skinColor, taste);
this.supremes = supremes;
}
//getters and setters
public int getsupremes() {
return supremes;
}
public void setsupremes(int supremes) {
this.supremes = supremes;
}
//eat method
public void eat(){
//how to eat an orange
}
//juice method
public void juice() {
//how to juice and orange
}
//peel method
public void peel(){
//how to peel an orange
}
}

جاوا کلاس کا باقاعدہ اعلامیہ کیسا لگتا ہے ، اور اوپر ہمارے کوڈ میں کیا ہے اس میں فرق ہے۔ ایکسٹینڈ کی ورڈ وہ ہے جو جاوا میں وراثت کو ممکن بنانے کے لیے استعمال کیا جاتا ہے۔

ہماری مثال کے اوپر بچے کی کلاس (اورنج) والدین کی کلاس (پھل) کو بڑھا دیتی ہے۔ لہذا ، پھلوں کی طبقے کی حالت اور طرز عمل کو اب اورنج کلاس کے ذریعے رسائی اور ترمیم کی جا سکتی ہے۔

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

پہلے سے موجود کھانے اور جوس کے طریقوں میں چھلکے کا طریقہ شامل کرنا بھی منطقی ہے کیونکہ اگرچہ تمام پھلوں کو چھلکا نہیں جا سکتا ، لیکن سنتری اکثر چھیلے جاتے ہیں۔

آپ کو ذہن میں رکھنا چاہیے کہ اگر ہم کھانے اور جوس کے موجودہ طریقوں کو تبدیل کرنے کا ارادہ نہیں رکھتے تو ہمیں انہیں اپنی سنتری کلاس میں شامل کرنے کی ضرورت نہیں ہوگی۔ اورنج کلاس کے طریقے پھل کی کلاس میں کسی بھی طرح کے طریقہ کار کو زیر کرتے ہیں۔ لہذا اگر تمام پھلوں کو اسی طرح کھایا جاتا اور جوس دیا جاتا ، تو ہمیں اورنج کلاس میں یہ طریقے بنانے کی ضرورت نہیں ہوگی۔

کردار کنسٹرکٹر وراثت میں ادا کرتے ہیں۔

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

ہماری مثال پر واپس جائیں ، ہر بار جب سنتری کی کوئی نئی چیز بنتی ہے تو پھل کی چیز بھی بنائی جاتی ہے کیونکہ سنتری ایک پھل ہے۔

پردے کے پیچھے ، جب چائلڈ کلاس آبجیکٹ بنتی ہے ، والدین کلاس کے کنسٹرکٹر کو پہلے کہا جاتا ہے اس کے بعد چائلڈ کلاس کا کنسٹرکٹر۔ اوپر ہمارے اورنج چائلڈ کلاس میں ، اگر کوئی اورینج آبجیکٹ بغیر کسی پیرامیٹر کے بنایا گیا ہے تو ہمارے ڈیفالٹ فروٹ کلاس کنسٹرکٹر کو بلایا جائے گا ، اس کے بعد ہمارا ڈیفالٹ اورنج کلاس ٹھیکیدار ہوگا۔

مندرجہ بالا ہمارے بنیادی کنسٹرکٹر میں سپر طریقہ ضروری ہے کیونکہ یہ بتاتا ہے کہ بنیادی کنسٹرکٹر — نہ کہ ڈیفالٹ کنسٹرکٹر — والدین کے پھلوں کی کلاس کو جب بھی پیرامیٹرز کے ساتھ نارنجی شے بنائی جائے۔

اب آپ جاوا میں وراثت استعمال کرسکتے ہیں۔

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

تصویری کریڈٹ: آندریاس ووہلفارت / پکسلز۔

بانٹیں بانٹیں ٹویٹ ای میل۔ وراثت کے ساتھ اپنے آبجیکٹ پر مبنی کوڈ کو کیسے منظم کریں

آبجیکٹ پر مبنی پروگرامنگ کا حق حاصل کرنے کا مطلب ہے کہ آپ کو وراثت کے بارے میں جاننے کی ضرورت ہے اور یہ کس طرح کوڈنگ کو آسان بنا سکتا ہے اور غلطیوں کو کم کر سکتا ہے۔

اگلا پڑھیں۔
متعلقہ موضوعات۔
  • پروگرامنگ۔
  • جاوا
  • آبجیکٹ اورینٹڈ پروگرامنگ
مصنف کے بارے میں کدیشا کیان۔(21 مضامین شائع ہوئے)

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

Kadeisha Kean سے مزید

ہماری نیوز لیٹر کو سبسکرائب کریں

ٹیک ٹپس ، جائزے ، مفت ای بکس ، اور خصوصی سودوں کے لیے ہمارے نیوز لیٹر میں شامل ہوں!

سبسکرائب کرنے کے لیے یہاں کلک کریں۔