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
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION