CodeGym /Java Blogu /Rastgele /Java'da süper anahtar kelime
John Squirrels
Seviye
San Francisco

Java'da süper anahtar kelime

grupta yayınlandı
Süper anahtar kelime farklı durumlarda kullanılır. Bu gönderiye başlamadan önce, daha iyi bir anlayış için Java'da kalıtım hakkında bilgi edinmenizi öneririz.

Java'daki süper anahtar kelime nedir?

Super , üst sınıfın geçersiz kılınan yöntemlerini çağırmak ve üst sınıfın gizli alanlarına atıfta bulunmak için kullanılabilen bir anahtar kelimedir.

Süper anahtar kelime neden ve ne zaman kullanılmalı?

Java süper anahtar sözcüğünün üç belirgin kullanımı vardır.
  1. Alt sınıfın aynı ada sahip veri üyeleri de varsa, üst sınıfın veri üyelerine erişin .
  2. Alt sınıftaki üst sınıfın varsayılan veya parametreli oluşturucularını çağırın .
  3. Çocuğun geçersiz kılınan yöntemleri varsa, alt sınıftaki üst sınıf yöntemlerini çağırın .
Örneklerin yardımıyla yukarıdaki üç durumu da anlayalım.

Örnek 1 - Ebeveynin veri üyelerine erişin

Örnek 1, Araç sınıfının özniteliklerine veya veri üyelerine Araba tipi alt sınıfında nasıl erişilebileceğini göstermektedir . İyi anlamak için aşağıdaki pasajı çalıştırdığınızdan emin olun.

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();
	}
}
Çıktı
Arabamın Adı: araba Ebeveynim Aracın Adı: araç

Örnek 2 - Alt sınıfta ebeveynin oluşturucularına erişin

Açıkça super() çağrısı , alt sınıftaki üst sınıfın hem varsayılan hem de parametreleştirilmiş yapıcısına erişmenizi sağlar. İşte parametreleştirilmiş yapıcıya bir örnek. Ana yani Shape sınıfının yapıcısı, öznitelikleri ayarlamak için alt yani Triangle sınıfında ( super() kullanılarak) çağrılır . Çıktıyı kendiniz test etmek için aşağıdaki programı çalıştırın.

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);
	}
}
Çıktı
Shape() parametreli yapıcı çağrıldı! Triangle() parametreli yapıcı çağrıldı! Üçgen Alfa Sarı
Hızlı Görev : Öğrenmenizi test etmek için varsayılan kurucuyu kullanarak yukarıdaki programı yeniden tasarlayın. Ayrıca, super() öğesinin super(arg) öğesinden ne kadar farklı olduğunu görün .

Örnek 3 - Alt sınıfta ebeveynin geçersiz kılma yöntemine erişin

Örnek 3, alt sınıfın da tanımladığı ebeveyn sınıfının yöntemlerine nasıl erişebileceğinizi gösterir. Aşağıdaki programdaki Sound üst sınıfı, voice() yöntemini tanımlar . Drum alt sınıfının da aynı ada sahip bir yöntemi vardır, yani voice() . Bu, metot sesinin alt sınıf tarafından geçersiz kılındığı anlamına gelir. Alt sınıfta üst sınıfın yöntemlerini kullanmak için super anahtar sözcüğünün nasıl gerekli olduğunu öğrenmek için aşağıdaki programı çalıştırın .

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();
	}
}
Çıktı
Shape() parametreli yapıcı çağrıldı! Triangle() parametreli yapıcı çağrıldı! Üçgen Alfa Sarı

Çözüm

Bu yazının sonunda, super anahtar sözcüğünün Java'daki işleyişini anlayabileceğinizi umuyoruz . Kodlamayı pratik yaparak öğrenmenizi öneririz. Pratik olarak mantık oluşturmayı öğrenmenin nihai anahtarıdır. Bu yazı, ne zaman sıkışsanız da sizi karşılayacak zaten. O zamana kadar, mutlu öğrenmeler!
Yorumlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION