CodeBlanks Logo Icon CodeBlanks

super

super ile üst sınıfı çağırmayı öğrenirsin.

super anahtar kelimesi

Alt sınıf yapıcısından üst sınıf yapıcısını çağırmak için super(...) kullanılır. super() çağrısı alt sınıf yapıcısının ilk satırı olmalıdır. Üst sınıfın alanlarını bu şekilde başlatırsın.

Örnek: class Cat extends Animal { Cat(String n) { super(n); } }. Burada Cat yapıcısı super(n) ile Animal yapıcısını çağırır ve name alanını üst sınıfta başlatır. super ayrıca üst sınıfın metotlarına erişmek için de kullanılır: super.eat(). Bu, geçersiz kılınmış bir metodu üst sınıf versiyonuyla çağırmayı sağlar.

super() konumu

super() çağrısı her zaman alt sınıf yapıcısının ilk satırı olmalıdır. Bu zorunludur; aksi halde derleme hatası alırsın. Üst sınıfın alanları, alt sınıfın kendi alanlarından önce başlatılmalıdır.

Örnek: Cat(String n) { super(n); int age = 0; }. Burada super(n) önce, age ataması sonra gelir. super(n)'i age atamasından sonra yazarsan derleme hatası verilir. Bu sıra, üst sınıfın önce hazırlanmasını güvence altına alır; alt sınıf gövdesi üst sınıfın hazır olduğunu bilir.

Uygulama Cat sınıfına super ekle

Animal adında bir sınıf tanımla; String name alanı ve Animal(String n) yapıcısı olsun, name = n; atansın. Cat extends Animal tanımla; Cat(String n) yapıcısı super(n) çağrısıyla başlasın. Cat içine main koy; bir Cat örneği oluştur ve name alanını yazdır.

Başlangıç kodu

Main.java
// Animal sınıfını tanımla
// Cat extends Animal tanımla, üst yapıcı çağrısı ekle
// main içinde örnekle ve yazdır

Örnek çözüm

Main.java
class Animal {
    String name;
    Animal(String n) {
        name = n;
    }
}
class Cat extends Animal {
    Cat(String n) {
        super(n);
    }
    public static void main(String[] args) {
        Cat c = new Cat("Pamuk");
        System.out.println(c.name);
    }
}

Beklenen çıktı

Pamuk

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 super kullanımlarını eşle

Kavram Anlamı
super(n) Üst sınıf yapıcısı
super.eat() Üst sınıf metodu
ilk satır Konum ilkesi
Animal Üst sınıf

2 super() çağrısı nerede olmalıdır?

  • Metot gövdesinde
  • Yapıcının ilk satırında Doğru cevap
  • Yapıcının son satırında
  • Sınıf dışında

Açıklama: Yapıcının ilk satırında — super() ilk satırda olmalı.

3 super() çağrısını tamamla

Soru
class Cat extends Animal {
    Cat(String n) {
        ____(n);
    }
}
Cevap
class Cat extends Animal {
    Cat(String n) {
        super(n);
    }
}

Açıklama: super(n) ile üst sınıf yapıcısı çağrılır.

Orta seviye bölümündeki tüm dersler