super
- Java kursu
- Orta seviye
- Ders 14/116
- 5 dk
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
// 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
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
class Cat extends Animal {
Cat(String n) {
____(n);
}
}
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.