CodeGym /مدونة جافا /Random-AR /الكلمة الأساسية الفائقة في Java
John Squirrels
مستوى
San Francisco

الكلمة الأساسية الفائقة في Java

نشرت في المجموعة
يتم استخدام الكلمة الأساسية الفائقة في مواقف مختلفة . قبل البدء بهذا المنشور، نشجعك على التعرف على معلومات حول الميراث في Java لفهم أفضل.

ما هي الكلمة الأساسية الفائقة في جافا؟

Super هي كلمة أساسية يمكن استخدامها لاستدعاء الأساليب التي تم تجاوزها للفئة الفائقة، وكذلك للإشارة إلى الحقول المخفية للفئة الفائقة.

لماذا ومتى تستخدم الكلمة الرئيسية سوبر؟

الكلمة الأساسية Java 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() بشكل صريح الوصول إلى المُنشئ الافتراضي أو المُنشئ ذي المعلمات للفئة الأصلية في الفئة الفرعية. وفيما يلي مثال على المنشئ ذو المعلمات. يتم استدعاء مُنشئ فئة الشكل الأصل (باستخدام 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);
	}
}
انتاج |
تم استدعاء مُنشئ الشكل () ذو المعلمات! تم استدعاء المُنشئ ذو المعلمات Triangle ()! مثلث ألفا أصفر
التحدي السريع : أعد تصميم البرنامج أعلاه باستخدام المُنشئ الافتراضي لاختبار تعلمك. وانظر أيضًا كيف يختلف super() عن super(arg) .

مثال 3 - الوصول إلى طريقة تجاوز الوالدين في الفصل الفرعي

يوضح المثال 3 كيف يمكنك الوصول إلى أساليب فئة الأصل التي تحددها الفئة الفرعية أيضًا. تحدد الفئة الأصلية "الصوت" في البرنامج أدناه طريقة voice() . تحتوي الفئة الفرعية Drum أيضًا على طريقة بنفس الاسم، أي 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();
	}
}
انتاج |
تم استدعاء مُنشئ الشكل () ذو المعلمات! تم استدعاء المُنشئ ذو المعلمات Triangle ()! مثلث ألفا أصفر

خاتمة

بحلول نهاية هذا المنشور، نأمل أن تكون قادرًا على فهم طريقة عمل الكلمة الأساسية super في Java. نحن نشجعك على تعلم البرمجة عن طريق الممارسة. حيث أن الممارسة هي المفتاح النهائي لتعلم بناء المنطق. سوف يرحب بك هذا المنشور على أي حال عندما تتعثر. حتى ذلك الحين، تعلم سعيد!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION