CodeGym /جاوا بلاگ /Random-UR /جاوا میں سپر کلیدی لفظ
John Squirrels
سطح
San Francisco

جاوا میں سپر کلیدی لفظ

گروپ میں شائع ہوا۔
سپر کلیدی لفظ مختلف حالات میں استعمال ہوتا ہے ۔ اس پوسٹ کے ساتھ شروع کرنے سے پہلے ہم آپ کو بہتر تفہیم کے لیے جاوا میں وراثت کے بارے میں جاننے کی ترغیب دیتے ہیں۔

جاوا میں سپر کلیدی لفظ کیا ہے؟

سپر ایک کلیدی لفظ ہے جو سپر کلاس کے اوور رائیڈڈ طریقوں کو استعمال کرنے کے ساتھ ساتھ سپر کلاس کے پوشیدہ فیلڈز کا حوالہ دینے کے لیے استعمال کیا جا سکتا ہے۔

سپر کلیدی لفظ کیوں اور کب استعمال کیا جائے؟

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

مثال 1 - والدین کے ڈیٹا ممبرز تک رسائی حاصل کریں۔

مثال 1 اس بات کی وضاحت کرتی ہے کہ گاڑی کی کلاس کے صفات یا ڈیٹا ممبرز تک کس طرح کار کی قسم چائلڈ کلاس میں رسائی حاصل کی جا سکتی ہے ۔ اس بات کو یقینی بنائیں کہ آپ اچھی طرح سے سمجھنے کے لیے ذیل کا ٹکڑا چلا رہے ہیں۔
class Vehicle {

	String name = "vehicle";
}

class Car extends Vehicle {

	String name = "car";

	public void printMyName() {

		System.out.println(name);
	}

	public void printParentName() {

		// use super keyword to access
		// parent's data member / attribute
		System.out.println(super.name);
	}

	public static void main(String[] args) {

		Car myCar = new Car();
		System.out.print("My Car's Name: ");
		myCar.printMyName();

		// printing the parent's name
		// using the super keyword
		System.out.print("My Parent Vehicle's Name: ");
		myCar.printParentName();
	}
}
آؤٹ پٹ
میری کار کا نام: کار میرے والدین کی گاڑی کا نام: گاڑی

مثال 2 - بچوں کی کلاس میں والدین کے کنسٹرکٹرز تک رسائی حاصل کریں۔

super() کو واضح طور پر کال کرنا آپ کو چائلڈ کلاس میں پیرنٹ کلاس کے ڈیفالٹ یا پیرامیٹرائزڈ کنسٹرکٹر دونوں تک رسائی حاصل کرنے کی اجازت دیتا ہے۔ یہاں پیرامیٹرائزڈ کنسٹرکٹر کی ایک مثال ہے۔ والدین یعنی شیپ کلاس کے کنسٹرکٹر کو چائلڈ یعنی ٹرائی اینگل کلاس میں (استعمال کرتے ہوئے super() ) کہا جاتا ہے۔ اپنے لیے آؤٹ پٹ کو جانچنے کے لیے نیچے دیئے گئے پروگرام کو چلائیں۔
public class Shape {

	String name;

	public Shape(String n) {

		System.out.println("Shape() parameterized constructor called!");
		name = n;
	}
}

class Triangle extends Shape {

	int sides = 3;
	String color;

	public Triangle(String n, String c) {

		// The super keyword calls the parameterized
		// constructor of the parent (Shape) with
		// 'n' as a parameter
		super(n);

		System.out.println("Triangle() parameterized constructor called!");
		this.color = c;
	}

	public static void main(String[] args) {

		Triangle myTriangle = new Triangle("Triangle Alpha", "Yellow");

		System.out.println(myTriangle.name);
		System.out.println(myTriangle.color);
	}
}
آؤٹ پٹ
شکل () پیرامیٹرائزڈ کنسٹرکٹر کو بلایا گیا! مثلث () پیرامیٹرائزڈ کنسٹرکٹر کہا جاتا ہے! مثلث الفا پیلا
کوئیک چیلنج : اپنے سیکھنے کو جانچنے کے لیے پہلے سے طے شدہ کنسٹرکٹر کا استعمال کرتے ہوئے مذکورہ پروگرام کو دوبارہ ڈیزائن کریں۔ یہ بھی دیکھیں کہ super() super(arg) سے کتنا مختلف ہے ۔

مثال 3 - چائلڈ کلاس میں والدین کے اوور رائیڈڈ طریقہ تک رسائی حاصل کریں۔

مثال 3 دکھاتی ہے کہ آپ والدین کی کلاس کے طریقوں تک کیسے رسائی حاصل کر سکتے ہیں جن کی وضاحت چائلڈ کلاس بھی کرتی ہے۔ مندرجہ ذیل پروگرام میں پیرنٹ کلاس ساؤنڈ ایک طریقہ کی وضاحت کرتا ہے voice() ۔ چائلڈ کلاس ڈرم میں بھی اسی نام کا ایک طریقہ ہے یعنی voice() ۔ اس کا مطلب ہے کہ طریقہ کی آواز کو ذیلی طبقے کے ذریعے اوور رائیڈ کر دیا گیا ہے۔ یہ جاننے کے لیے ذیل میں پروگرام چلائیں کہ چائلڈ کلاس میں پیرنٹ کلاس کے طریقوں کو استعمال کرنے کے لیے سپر کلیدی لفظ کس طرح ضروری ہے۔
public class Sound {

	public void voice() {
		System.out.println("Play sound!");
	}
}

class Drum extends Sound {

	public void voice() {
		System.out.println("Play drums!");
	}

	public void play() {

		// The super keyword calls the
		// voice() method of the parent
		super.voice();
		voice();
	}

	public static void main(String[] args) {

		Drum myDrum = new Drum();
		myDrum.play();
	}
}
آؤٹ پٹ
شکل () پیرامیٹرائزڈ کنسٹرکٹر کو بلایا گیا! مثلث () پیرامیٹرائزڈ کنسٹرکٹر کہا جاتا ہے! مثلث الفا پیلا

نتیجہ

اس پوسٹ کے اختتام تک، ہم امید کرتے ہیں کہ آپ جاوا میں سپر کی ورڈ کے کام کو سمجھنے کے قابل ہو جائیں گے۔ ہم آپ کو مشق کے ذریعے کوڈنگ سیکھنے کی ترغیب دیتے ہیں۔ جیسا کہ مشق منطق کی تعمیر کو سیکھنے کی حتمی کلید ہے۔ جب بھی آپ پھنس جائیں گے یہ پوسٹ آپ کا خیر مقدم کرے گی۔ تب تک، سیکھنے کی خوشی!
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION