CodeGym /Java Blog /Willekeurig /Super trefwoord in Java
John Squirrels
Niveau 41
San Francisco

Super trefwoord in Java

Gepubliceerd in de groep Willekeurig
Het super- trefwoord wordt in verschillende situaties gebruikt. Voordat we aan de slag gaan met dit bericht, raden we je aan om meer te weten te komen over overerving in Java voor een beter begrip.

Wat is het super-trefwoord in Java?

Super is een sleutelwoord dat kan worden gebruikt om overschreven methoden van de superklasse aan te roepen, maar ook om te verwijzen naar verborgen velden van de superklasse.

Waarom en wanneer het superzoekwoord gebruiken?

Het Java- supersleutelwoord heeft drie expliciete toepassingen.
  1. Toegang tot de gegevensleden van de bovenliggende klasse wanneer de onderliggende klasse ook gegevensleden met dezelfde naam heeft.
  2. Roep de standaard of geparametriseerde constructors van de bovenliggende klasse aan in de onderliggende klasse.
  3. Roep de methoden van de bovenliggende klasse aan in de onderliggende klasse als het kind overschreven methoden heeft.
Laten we alle bovenstaande drie gevallen begrijpen met behulp van voorbeelden.

Voorbeeld 1 - Toegang tot gegevensleden van ouders

Voorbeeld 1 illustreert hoe toegang kan worden verkregen tot de attributen of gegevensleden van de klasse Voertuig in de onderliggende klasse Auto -type. Zorg ervoor dat u het onderstaande fragment uitvoert om het goed te begrijpen.

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();
	}
}
Uitgang
Naam van mijn auto: auto Naam van mijn oudervoertuig: voertuig

Voorbeeld 2 - Toegang tot de constructors van de ouder in de onderliggende klasse

Door super() expliciet aan te roepen, krijgt u toegang tot zowel de standaard- als de geparametriseerde constructor van de bovenliggende klasse in de onderliggende klasse. Hier is een voorbeeld van de geparametriseerde constructor. De constructor van de bovenliggende dwz de klasse Shape wordt aangeroepen (met behulp van super() ) in de onderliggende dwz de klasse Triangle om de attributen in te stellen. Voer het onderstaande programma uit om de uitvoer zelf te testen.

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);
	}
}
Uitgang
Shape() geparametriseerde constructor aangeroepen! Triangle() geparametriseerde constructor aangeroepen! Driehoek Alfa Geel
Snelle uitdaging : ontwerp het bovenstaande programma opnieuw door de standaardconstructor te gebruiken om uw leren te testen. Zie ook hoe super() verschilt van super(arg) .

Voorbeeld 3 - Toegang tot de overschreven methode van de ouder in de onderliggende klasse

Voorbeeld 3 laat zien hoe u toegang kunt krijgen tot de methoden van de klasse van de ouder die ook door de onderliggende klasse wordt gedefinieerd. De bovenliggende klasse Sound in het onderstaande programma definieert een methode voice() . De onderliggende klasse Drum heeft ook een methode met dezelfde naam, namelijk voice() . Het betekent dat de methodestem wordt overschreven door de subklasse. Voer het onderstaande programma uit om te leren hoe het sleutelwoord super nodig is om de methoden van de bovenliggende klasse in de onderliggende klasse te gebruiken.

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();
	}
}
Uitgang
Shape() geparametriseerde constructor aangeroepen! Triangle() geparametriseerde constructor aangeroepen! Driehoek Alfa Geel

Conclusie

Aan het einde van dit bericht hopen we dat je de werking van het super- trefwoord in Java kunt begrijpen . We moedigen je aan om te leren coderen door te oefenen. Omdat oefenen de ultieme sleutel is tot het leren van logisch bouwen. Dit bericht zal je hoe dan ook verwelkomen als je vastloopt. Tot die tijd, veel leerplezier!
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION