CodeGym/Java blog/Véletlen/Szuper kulcsszó Java nyelven
John Squirrels
Szint
San Francisco

Szuper kulcsszó Java nyelven

Megjelent a csoportban
A szuper kulcsszót különböző helyzetekben használják. Mielőtt elkezdené ezt a bejegyzést, javasoljuk, hogy ismerje meg a Java öröklését a jobb megértés érdekében.

Mi a szuper kulcsszó a Java nyelven?

A Super egy olyan kulcsszó, amely a szuperosztály felülírt metódusainak meghívására, valamint a szuperosztály rejtett mezőire való hivatkozásra használható.

Miért és mikor kell használni a szuper kulcsszót?

A Java szuper kulcsszónak három kifejezett felhasználása van.
  1. Hozzáférés a szülőosztály adattagjaihoz, ha az utódosztálynak is vannak azonos nevű adattagjai.
  2. Hívja meg a szülőosztály alapértelmezett vagy paraméterezett konstruktorait a gyermekosztályban.
  3. Hívja meg a szülő osztály metódusait az utódosztályban, ha a gyermek felülbírált metódusokkal rendelkezik.
Értsük meg a fenti három esetet példák segítségével.

1. példa – Hozzáférés a szülő adattagjaihoz

Az 1. példa szemlélteti, hogy a Jármű osztály attribútumai vagy adattagjai hogyan érhetők el az Autó típusú gyermekosztályban. Győződjön meg róla, hogy futtassa az alábbi részletet, hogy jól megértse.
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();
	}
}
Kimenet
Autóm neve: autó Szülőm járműve neve: jármű

2. példa – A szülő konstruktorainak elérése a gyermekosztályban

A super() kifejezett meghívása lehetővé teszi a szülőosztály alapértelmezett vagy paraméterezett konstruktorának elérését a gyermekosztályban. Íme egy példa a paraméterezett konstruktorra. Az attribútumok beállításához a szülő, azaz a Shape osztály konstruktorát ( super() használatával ) hívjuk meg a gyermek, azaz a Triangle osztályban. Futtassa az alábbi programot, hogy saját maga tesztelje a kimenetet.
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);
	}
}
Kimenet
Shape() paraméterezett konstruktor meghívva! Triangle() paraméterezett konstruktor meghívva! Háromszög Alfa sárga
Gyors kihívás : Tervezd újra a fenti programot az alapértelmezett konstruktor használatával a tanulás tesztelésére. Nézze meg azt is, hogy a super() miben különbözik a super(arg) -tól .

3. példa – Hozzáférés a szülő felülírt metódusához a gyermekosztályban

A 3. példa bemutatja, hogyan érheti el a szülő osztály metódusait, amelyeket a gyermekosztály is meghatároz. Az alábbi programban a Sound szülőosztály a voice() metódusát határozza meg . A Drum gyermekosztálynak is van egy azonos nevű metódusa, azaz a voice() . Ez azt jelenti, hogy a metódus hangját az alosztály felülírja. Futtassa az alábbi programot, hogy megtudja, hogyan szükséges a szuper kulcsszó a szülőosztály metódusainak használatához a gyermekosztályban.
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();
	}
}
Kimenet
Shape() paraméterezett konstruktor meghívva! Triangle() paraméterezett konstruktor meghívva! Háromszög Alfa sárga

Következtetés

Reméljük, hogy a bejegyzés végére megérti a szuper kulcsszó működését a Java nyelven. Javasoljuk, hogy tanulja meg a kódolást gyakorlatban. Mivel a gyakorlat a végső kulcs a tanulási logika felépítéséhez. Ez a bejegyzés mindenképpen szívesen lát, ha elakadsz. Addig is jó tanulást!
Hozzászólások
  • Népszerű
  • Új
  • Régi
Hozzászólás írásához be kell jelentkeznie
Ennek az oldalnak még nincsenek megjegyzései