سپر لفظ مختلف حالتن ۾ استعمال ٿيندو آهي. هن پوسٽ سان شروع ڪرڻ کان پهريان اسان توهان کي بهتر سمجهڻ لاءِ جاوا ۾ وراثت بابت سکڻ جي حوصلا افزائي ڪريون ٿا.

جاوا ۾ سپر لفظ ڇا آهي؟

Super ھڪڙو لفظ آھي جيڪو استعمال ڪري سگھجي ٿو سپر ڪلاس جي اوور رائڊ ٿيل طريقن کي سڏڻ لاءِ، ۽ گڏوگڏ سپر ڪلاس جي پوشیدہ شعبن جو حوالو ڏيڻ لاءِ.

سپر ڪي ورڊ ڇو ۽ ڪڏهن استعمال ڪجي؟

جاوا سپر لفظ جا ٽي واضح استعمال آهن.
  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() توهان کي ٻارن جي طبقي ۾ والدين طبقي جي ڊفالٽ يا پيرا ميٽرائيز ڪنسٽرڪٽر ٻنهي تائين رسائي جي اجازت ڏئي ٿو. هتي parameterized تعمير ڪندڙ جو هڪ مثال آهي. والدين يعني شيپ ڪلاس جي ڪنسٽرڪٽر کي چئجي ٿو ( سپر() استعمال ڪندي چائلڊ يعني ٽرينگل ڪلاس ۾ خاصيتون مقرر ڪرڻ لاءِ. پنهنجي لاءِ آئوٽ پٽ کي جانچڻ لاءِ هيٺ ڏنل پروگرام کي هلايو.

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);
	}
}
پيداوار
Shape() parameterized Constructor سڏيو وڃي ٿو! Triangle() parameterized Constructor سڏيو وڃي ٿو! مثلث الفا پيلو
Quick Challenge : مٿي ڏنل پروگرام کي نئين سر ترتيب ڏيو ڊفالٽ ڪنسٽرڪٽر استعمال ڪندي پنھنجي سکيا کي جانچڻ لاءِ. پڻ، ڏسو ته ڪيئن super() super(arg) کان مختلف آهي .

مثال 3 - ٻارن جي ڪلاس ۾ والدين جي اوور رائڊ ٿيل طريقي تائين رسائي

مثال 3 ڏيکاري ٿو ته توهان والدين جي ڪلاس جي طريقن تائين ڪيئن رسائي حاصل ڪري سگهو ٿا جيڪي ٻار ڪلاس پڻ بيان ڪري ٿو. هيٺ ڏنل پروگرام ۾ والدين طبقي جو آواز هڪ طريقو آواز () کي بيان ڪري ٿو . چائلڊ ڪلاس ڊرم ۾ به هڪ طريقو آهي جنهن جو نالو ساڳيو آهي يعني 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();
	}
}
پيداوار
Shape() parameterized Constructor سڏيو وڃي ٿو! Triangle() parameterized Constructor سڏيو وڃي ٿو! مثلث الفا پيلو

نتيجو

هن پوسٽ جي آخر تائين، اسان کي اميد آهي ته توهان جاوا ۾ سپر لفظ جي ڪم کي سمجهي سگهندا . اسان توهان کي مشق ذريعي ڪوڊنگ سکڻ جي حوصلا افزائي ڪريون ٿا. جيئن ته مشق منطق جي عمارت کي سکڻ جي آخري ڪنجي آهي. هي پوسٽ توهان کي ڀليڪار ڪندي جڏهن به توهان ڦاسي پيا. ان وقت تائين، خوش سکيا!