CodeGym /Blog Java /Aleatoriu /Super cuvânt cheie în Java
John Squirrels
Nivel
San Francisco

Super cuvânt cheie în Java

Publicat în grup
Cuvântul cheie super este folosit în diferite situații. Înainte de a începe cu această postare, vă încurajăm să aflați despre moștenirea în Java pentru o mai bună înțelegere.

Care este cuvântul cheie super în Java?

Super este un cuvânt cheie care poate fi folosit pentru a invoca metode suprascrise ale superclasei, precum și pentru a se referi la câmpurile ascunse ale superclasei.

De ce și când să folosiți cuvântul cheie super?

Cuvântul cheie super Java are trei utilizări explicite.
  1. Accesați membrii de date ai clasei părinte atunci când clasa copil are și membri de date cu același nume.
  2. Apelați constructorii impliciti sau parametrizați ai clasei părinte din clasa copil.
  3. Apelați metodele clasei părinte din clasa copil dacă copilul are metode suprascrise.
Să înțelegem toate cele trei cazuri de mai sus cu ajutorul exemplelor.

Exemplul 1 - Accesați membrii datelor părintelui

Exemplul 1 ilustrează modul în care atributele sau membrii datelor din clasa Vehicule pot fi accesați în clasa copil de tip Mașină . Asigurați-vă că rulați fragmentul de mai jos pentru a înțelege bine.

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();
	}
}
Ieșire
Numele mașinii mele: mașină Numele vehiculului meu părinte: vehicul

Exemplul 2 - Accesați constructorii părintelui în clasa copil

Apelarea explicită a super() vă permite să accesați atât constructorul implicit, cât și cel parametrizat al clasei părinte din clasa copil. Iată un exemplu de constructor parametrizat. Constructorul clasei Shape este apelat (folosind super() ) în clasa secundară, adică Triangle , pentru a seta atributele. Rulați programul de mai jos pentru a testa singur rezultatul.

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);
	}
}
Ieșire
Constructor parametrizat Shape() numit! Constructor parametrizat Triangle() numit! Triunghi Alfa Galben
Provocare rapidă : Reproiectați programul de mai sus utilizând constructorul implicit pentru a vă testa învățarea. De asemenea, vedeți cum super() este diferit de super(arg) .

Exemplul 3 - Accesați metoda suprascrisă a părintelui în clasa copil

Exemplul 3 arată cum puteți accesa metodele clasei părinte pe care le definește și clasa copil. Clasa părinte Sound din programul de mai jos definește o metodă voice() . Clasa copil Drum are și o metodă cu același nume, adică voice() . Înseamnă că vocea metodei este suprascrisă de subclasă. Rulați programul de mai jos pentru a afla cum este necesar cuvântul cheie super pentru a utiliza metodele clasei părinte în clasa copil.

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();
	}
}
Ieșire
Constructor parametrizat Shape() numit! Constructor parametrizat Triangle() numit! Triunghi Alfa Galben

Concluzie

Până la sfârșitul acestei postări, sperăm că veți putea înțelege funcționarea cuvântului cheie super în Java. Vă încurajăm să învățați codificarea prin practică. Deoarece practica este cheia supremă pentru a învăța construirea logicii. Această postare vă va primi oricum ori de câte ori rămâneți blocat. Până atunci, învățare fericită!
Comentarii
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION