CodeGym /Java Blog /Random /Super keyword sa Java
John Squirrels
Antas
San Francisco

Super keyword sa Java

Nai-publish sa grupo
Ang sobrang keyword ay ginagamit sa iba't ibang sitwasyon. Bago magsimula sa post na ito, hinihikayat ka naming matutunan ang tungkol sa pamana sa Java para sa mas mahusay na pag-unawa.

Ano ang sobrang keyword sa Java?

Ang Super ay isang keyword na maaaring magamit upang mag-invoke ng mga overridden na pamamaraan ng superclass, gayundin upang sumangguni sa mga nakatagong field ng superclass.

Bakit at kailan gagamitin ang super keyword?

Ang Java super keyword ay may tatlong tahasang paggamit.
  1. I-access ang mga miyembro ng data ng parent class kapag ang child class ay mayroon ding mga miyembro ng data na may parehong pangalan.
  2. Tawagan ang default o parameterized na mga constructor ng parent class sa child class.
  3. Tawagan ang mga pamamaraan ng klase ng magulang sa klase ng bata kung ang bata ay may mga na-override na pamamaraan.
Intindihin natin ang lahat ng tatlong kaso sa itaas gamit ang tulong ng mga halimbawa.

Halimbawa 1 - I-access ang mga miyembro ng data ng magulang

Ang Halimbawa 1 ay naglalarawan kung paano maa-access ang mga katangian o miyembro ng data ng klase ng Sasakyan sa klase ng bata na Uri ng Kotse . Tiyaking patakbuhin mo ang snippet sa ibaba upang maunawaan nang mabuti.

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();
	}
}
Output
Pangalan ng Aking Sasakyan: kotse Pangalan ng Sasakyan ng Magulang Ko: sasakyan

Halimbawa 2 - I-access ang mga constructor ng magulang sa child class

Ang tahasang pagtawag sa super() ay nagbibigay-daan sa iyong ma-access ang parehong default o parameterized na constructor ng parent class sa child class. Narito ang isang halimbawa ng parameterized constructor. Ang magulang ie Shape class' constructor ay tinatawag na (gamit ang super() ) sa bata ie Triangle class upang itakda ang mga katangian. Patakbuhin ang programa sa ibaba upang subukan ang output para sa iyong sarili.

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);
	}
}
Output
Shape() parameterized constructor na tinatawag! Triangle() parameterized constructor na tinatawag! Triangle Alpha Yellow
Mabilis na Hamon : Muling idisenyo ang programa sa itaas sa pamamagitan ng paggamit ng default na constructor upang subukan ang iyong pag-aaral. Gayundin, tingnan kung paano naiiba ang super() sa super(arg) .

Halimbawa 3 - I-access ang na-override na paraan ng magulang sa klase ng bata

Ipinapakita ng Halimbawa 3 kung paano mo maa-access ang mga pamamaraan ng klase ng magulang na tinukoy din ng klase ng bata. Tinutukoy ng parent class Sound sa programa sa ibaba ang isang method voice() . Ang child class Drum ay mayroon ding pamamaraan na may parehong pangalan ie voice() . Nangangahulugan ito na ang boses ng pamamaraan ay na-override ng subclass. Patakbuhin ang programa sa ibaba upang matutunan kung paano kinakailangan ang super keyword para magamit ang mga pamamaraan ng parent class sa child class.

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();
	}
}
Output
Shape() parameterized constructor na tinatawag! Triangle() parameterized constructor na tinatawag! Triangle Alpha Yellow

Konklusyon

Sa pagtatapos ng post na ito, umaasa kaming mauunawaan mo ang paggana ng sobrang keyword sa Java. Hinihikayat ka naming matuto ng coding sa pamamagitan ng pagsasanay. Dahil ang pagsasanay ay ang tunay na susi sa pag-aaral ng pagbuo ng lohika. Ang post na ito ay tatanggapin ka pa rin sa tuwing ikaw ay natigil. Hanggang doon, maligayang pag-aaral!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION