CodeGym /وبلاگ جاوا /Random-FA /کلمه کلیدی فوق العاده در جاوا
John Squirrels
مرحله
San Francisco

کلمه کلیدی فوق العاده در جاوا

در گروه منتشر شد
کلمه کلیدی super در موقعیت های مختلف استفاده می شود. قبل از شروع با این پست، ما شما را تشویق می کنیم که برای درک بهتر در مورد وراثت در جاوا بیاموزید.

کلمه کلیدی فوق العاده در جاوا چیست؟

Super یک کلمه کلیدی است که می تواند برای فراخوانی متدهای overrided superclass و همچنین برای ارجاع به فیلدهای پنهان superclass استفاده شود.

چرا و چه زمانی از کلمه کلیدی super استفاده کنیم؟

کلیدواژه جاوا فوق العاده سه کاربرد صریح دارد.
  1. زمانی که کلاس فرزند دارای اعضای داده با همین نام باشد به اعضای داده کلاس والد دسترسی پیدا کنید.
  2. سازنده های پیش فرض یا پارامتر شده کلاس والد را در کلاس فرزند فراخوانی کنید.
  3. اگر فرزند متدهای رد شده دارد، متدهای کلاس والد را در کلاس فرزند فراخوانی کنید .
اجازه دهید با استفاده از مثال ها، تمام سه مورد فوق را درک کنیم.

مثال 1 - به اعضای داده های والدین دسترسی داشته باشید

مثال 1 نشان می دهد که چگونه می توان به ویژگی ها یا اعضای داده های کلاس Vehicle در کلاس فرزند نوع Car دسترسی داشت . مطمئن شوید که قطعه زیر را اجرا کنید تا به خوبی متوجه شوید.
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() به شما امکان می دهد به سازنده پیش فرض یا پارامتری شده کلاس والد در کلاس فرزند دسترسی داشته باشید. در اینجا یک نمونه از سازنده پارامتری شده است. سازنده کلاس والد یعنی Shape (با استفاده از super() ) در کلاس فرزند یعنی Triangle برای تنظیم ویژگی ها فراخوانی می شود. برنامه زیر را اجرا کنید تا خروجی را برای خودتان تست کنید.
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() فراخوانی شد! سازنده پارامتری Triangle() فراخوانی شد! مثلث آلفا زرد
چالش سریع : برنامه فوق را با استفاده از سازنده پیش فرض برای آزمایش یادگیری خود دوباره طراحی کنید. همچنین، ببینید که چگونه super() با super(arg) متفاوت است .

مثال 3 - به متد رد شده والد در کلاس فرزند دسترسی پیدا کنید

مثال 3 نشان می دهد که چگونه می توانید به متدهای کلاس والد که کلاس فرزند نیز تعریف می کند دسترسی پیدا کنید. کلاس والد Sound در برنامه زیر یک متد voice() را تعریف می کند . کلاس فرزند Drum نیز متدی به همین نام دارد یعنی voice() . به این معنی است که صدای روش توسط زیر کلاس لغو می شود. برنامه زیر را اجرا کنید تا بدانید چگونه کلمه کلیدی super برای استفاده از متدهای کلاس والد در کلاس فرزند ضروری است.
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() فراخوانی شد! سازنده پارامتری Triangle() فراخوانی شد! مثلث آلفا زرد

نتیجه

تا پایان این پست، امیدواریم بتوانید عملکرد کلمه کلیدی فوق العاده در جاوا را درک کنید. ما شما را به یادگیری کدنویسی با تمرین تشویق می کنیم. همانطور که تمرین کلید نهایی یادگیری منطق است. این پست به هر حال هر زمان که گیر کردید از شما استقبال می کند. تا آن زمان، یادگیری مبارک!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION