Java’da “super”: Üst Sınıfa Erişim

yazı resmi

Java, nesne odaklı programlama için güçlü bir dil olarak bilinir. Miras, kodun tekrar kullanılabilirliğini artıran ve sınıflar arasında ilişkileri kuran önemli bir kavramdır. Java’da “super” anahtar kelimesi, miras ilişkisi içindeki alt sınıfların üst sınıfa erişimini sağlar. Bu makalede, Java’da “super” anahtar kelimesinin ne olduğunu, nasıl kullanıldığını ve mirasın gücünü nasıl kullanabileceğimizi keşfedeceğiz.

“super” Nedir?

Java’da “super” anahtar kelimesi, alt sınıfın bir üst sınıfa ait üyelere veya yapılara erişim sağlamak için kullanılır. Alt sınıf, üst sınıfı miras aldığında, “super” anahtar kelimesini kullanarak üst sınıfın özelliklerine ve metotlarına erişebilir.

“super” Kullanımı:

Java’da “super” anahtar kelimesi, iki temel şekilde kullanılabilir:

  • Üst sınıfın constructor’ını çağırmak: Alt sınıfın kendi constructor’ı içinde “super()” ifadesi kullanılarak üst sınıfın constructor’ı çağrılabilir.
  • Üst sınıfa ait metotları veya değişkenleri kullanmak: Alt sınıfın metotları içinde, üst sınıfa ait bir metodu veya değişkeni kullanmak için “super” anahtar kelimesi kullanılır.

“super” Avantajları:

  • Üst Sınıf Davranışlarının Kullanımı: “super” anahtar kelimesi, alt sınıfın üst sınıfa ait davranışları kullanmasını sağlar. Bu, kodun yeniden kullanılabilirliğini ve modülerliğini artırır. Alt sınıf, üst sınıfın özelliklerini ve davranışlarını devralırken, kendine özgü davranışlarını da ekleyebilir.
  • Constructor Zinciri: Alt sınıfın constructor’ı içinde “super” anahtar kelimesi kullanarak üst sınıfın constructor’ını çağırmak, constructor zinciri oluşturur. Bu, miras alınan sınıfların constructor’larını düzenli ve yönetilebilir bir şekilde çağırmamızı sağlar.

“super” Kullanımı Örneği:

Aşağıda, “Arac” adında bir üst sınıf ve bu sınıfı miras alan “Araba” alt sınıfıyla ilgili bir örnek verilmiştir:

public class Arac {
    protected String marka;

    public Arac(String marka) {
        this.marka = marka;
    }

    public void hareketEt() {
        System.out.println("Arac hareket ediyor.");
    }
}

public class Araba extends Arac {
    private int hiz;

    public Araba(String marka, int hiz) {
        super(marka);
        this.hiz = hiz;
    }

    @Override
    public void hareketEt() {
        super.hareketEt();
        System.out.println("Araba " + hiz + " km/s hızla ilerliyor.");
    }
}

Bu örnekte, “Arac” adında bir üst sınıf tanımlanmıştır. “Araba” sınıfı, “Arac” sınıfını miras alarak “super” anahtar kelimesini kullanarak üst sınıfa erişir. “Araba” sınıfı, kendi özel davranışını eklerken “Arac” sınıfının davranışlarını da kullanır.

Sonuç:

Java’da “super” anahtar kelimesi, miras ilişkisi içindeki alt sınıfların üst sınıfa erişimini sağlar. Alt sınıf, “super” anahtar kelimesini kullanarak üst sınıfa ait metotları, değişkenleri ve constructor’ları kullanabilir. Bu, kodun daha modüler, okunabilir ve yeniden kullanılabilir olmasını sağlar.