Yükleniyor...

Java'da super

Cocuk yapici icinde super kullanin ki ebeveyn yapici once calissin. Truck extends Car tutun. Truck() icinde super(); cagirin, sonra truck yazdirin. Car() icinde car yazdirin. Yard.java derleyin ve java Yard calistirin. Ekran once car, sonra truck gostermeli. Ikinci demo super("car") ile bir marki Car(String mark) e verir. Bir metodu override etmeyi sonraki sayfaya birakin — bu ders super ile yapici sirasidir.

Once ebeveyn yapiciyi cagirin

Kalitim sayfasi bos bir Truck un Car dan horn kullanmasina izin verdi. Bu sayfa yapicilar ekler. Yard.java acin. Public sinif adini Yard tutun. Kalan yol demolarini, yapicilari karistiriyorsa sadece-horn dosyalarini, Store yazicilarini ve klavye Scanner i silin. Program yazma beklememeli. Import satiri gerekmez.
Argumansiz yapicisi car yazan ebeveyni bildirin:
class Car {
Car() {
System.out.println("car");
}
}
Cocugu extends Car ile bildirin. Truck() icinde ilk deyim olarak super(); cagirin, sonra truck yazdirin:
super();
System.out.println("truck");
Yard.main icinde bir truck kurun:
Truck t = new Truck();
Truck kurmak Truck() e girer. Bu cagri super() ile baslar ve Car() i calistirir. Ebeveyn bitince cocuk yazisi calisir.

Yard super then truck print

java
class Car {
    Car() {
        System.out.println("car");
    }
}

class Truck extends Car {
    Truck() {
        super();
        System.out.println("truck");
    }
}

public class Yard {
    public static void main(String[] args) {
        Truck t = new Truck();
    }
}

Yard.java nin oldugu klasorden javac Yard.java calistirin. Parantez, suslu parantez ve noktali virguller uyunca javac kendi satirini yazmaz. Sonra java Yard calistirin — java Yard.java degil. Calistirma komutundan .java son ekini cikarin. Dosyada tek public sinif tutun ki ad Yard ile uyussun. Yardimci turler Car ve Truck bu baslangic biciminde public olmadan kalir.
Ekran once car, sonra truck gosterir. Calistirmayi bir kez yuruyun. Java Yard.main den baslar. new Truck() Truck() e girer. Ilk deyim super(); oldugu icin Car() calisir ve car yazar. Kontrol Truck() e doner ve truck yazar. Ebeveyn satiri cocuk satirindan once gelir cunku super() once calisti.
Ekrana bakarken sirayi sesli soyleyin: ebeveyn yapici, sonra cocuk yazisi. Bu soylenen sira, cocuk yapicida super() nin zorladigi siradir. Satirlar yanlis sirada gelirse ogretim dosyasini tekrar acin ve super(); nin hâlâ Truck() icinde herhangi bir println den once ilk deyim oldugunu kontrol edin.
Daha sonra ebeveyn yapicinin arguman istedigi bir denemede truck u super() den once yazdirirsaniz javac reddedebilir — super yazdiginizda ilk deyim olmalidir. Bu ilk demoda ebeveyn arguman istemez ve ogretim dosyasi sirayi net tutmak icin bilerek super(); yi once tutar. Eski bir horn demosundan yalniz beep gorurseniz yapici ogretim dosyasina gecin ve tekrar java Yard calistirin.
Bu sayfada Truck uzerinde horn yeniden yazmayin. Metodu override etmek sonraki derstir. Bugun cocuk yapici super ile ebeveynle konusur, sonra kendi kelimesini yazar. car kelimesini ebeveyn tarafinda, truck kelimesini cocuk tarafinda tutun ki her satir hangi yapicinin bittigini soylesin.

super ile ebeveyne deger verin

Ikinci program extends i tutar. Ebeveyn yapici artik bir String mark alir ve o marki yazar. Cocuk super("car") cagirir ve sonra truck yazar.

Yard super with mark argument

java
class Car {
    Car(String mark) {
        System.out.println(mark);
    }
}

class Truck extends Car {
    Truck() {
        super("car");
        System.out.println("truck");
    }
}

public class Yard {
    public static void main(String[] args) {
        Truck t = new Truck();
    }
}

javac Yard.java ile derleyin, sonra java Yard calistirin. Ekran yine once car, sonra truck gosterir. Bu kez car, argumansiz bir Car() icindeki sabit yazi degil, super("car") ile verdiginiz argumandir. Cocuk mark stringini secti; ebeveyn yapici onu yazdi. Sonra cocuk truck yazdi.
Ebeveyn yapici imzasini bir kez daha okuyun: Car(String mark). super("car") icindeki tirnakli string o marktir. Bu kontrol icin dosyada baska bir sey degistirmeyin — extends Car kalsin, cocuktaki truck yazisi kalsin ve main de new Truck() kalsin. Ekran hâlâ car in altinda truck ile biter cunku cocuk yazisi yalniz super("car") dondukten sonra calisir.
Car yalniz Car(String mark) e sahipken super("car") i atlarsaniz javac reddeder, cunku ebeveynin artik sizin yerinize cagirabilecegi sessiz argumansiz yapicisi yoktur. Eslesen super(...) cagrisini yazmak, cocugun ebeveyni ihtiyac duydugu degerlerle baslatma yoludur. Truck() icinde super u ilk deyim tutun. javac Car uzerinde eksik varsayilan yapicidan sikayet ederse once cocuk yapiciya bakin ve super("car") satirinin var ve hâlâ ilk oldugunu dogrulayin.

horn sayfasindaki duz extends ile karsilastirma

Kalitim sayfasinda bos bir Truck yapici yazmadan horn cagirdi. Bu sayfada yapicilar super uzerinden sirayla calisir. horn demolarini yakinlardaysa tarih olarak tutun; super ogretim dosyasini java Yard ile calistirin ki ekran car sonra truck gostersin.
horn sayfasi extends in bir metodu paylastigini kanitladi. Bu sayfa extends in bir kurulum yolunu da paylastigini kanitlar: cocuk super ile ebeveyni baslatir, sonra kendi yazisiyla devam eder. Her iki ders Truck extends Car tutar. Yalniz Truck govdesi degisir — sonraki horn cagrisi olan bos suslu parantezlerden, super ile baslayan bir yapiciya.
super(), super("car") ve yapici sirasi yeni tokenlerdir. Hâlâ extends gerekir. Henuz bir metodu override etmeniz gerekmez. main de kalan bir horn cagrisi varsa bu demolar icin silin ki ekran yalniz yapici yazilarini gostersin.

Bu sayfa override icin ne birakir

Bu sayfa ebeveyn yapicilarini super ile calistirir. Sonraki sayfa override gosterir; cocuk ebeveynin zaten sahip oldugu bir metodun kendi surumunu yazar. Burada yapici super cagrilarinda kalin. Bu demolarin gereksinimi olarak henuz Truck uzerinde horn u degistirmeyin.
Sonra bir metodu override ettiginizde cogu zaman yine once super ile ebeveyn yapiciyi cagirirsiniz. Bu sayfayi o hikayenin yapici yarisi sayin. Her iki Yard demosunu car sonra truck otomatik hissedilene kadar bitirin, sonra override dersini acin.

Override oncesi

super(); cagirip sonra truck yazdirabilir ve once car gorebilirsiniz. Ebeveyn mark aldiginda super("car") cagirabilir ve yine car, sonra truck gorebilirsiniz. Tutulan her demo icin sirayla Yard.java derleyin ve java Yard calistirin. Ebeveyn yapici cocuk yazisindan once bitti. Sonraki sayfa override dir; cocuk bir metot govdesini degistirir.
Net sira icin argumansiz super() demosunu tutun. Net arguman gecisi icin super("car") demosunu tutun. Metot override unu bu sayfanin disinda tutun. Bu uc aliskanlik ileriemeden onceki kontrol noktasidir. new Truck() dan sonra car truck un ustunde geldiginde super bu dersin isini yapmistir ve override konusuna hazirsiniz.
Klasorde son bir tur: bir public Yard, iki yardimci tur, klavye beklemesi yok, path kalintisi yok, zorla horn yeniden yazimi yok. Acik tuttugunuz demoda bir kez daha javac Yard.java ve java Yard calistirin. Ekran hâlâ car sonra truck yaziyorsa yapici sirasi saglamdir ve kurs sonraki sayfada override a gecebilir.

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
6
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 Talimatlar

  • Her soruyu dikkatle okuyun
  • Her soru için en iyi cevabı seçin
  • Quiz'i istediğiniz kadar tekrar alabilirsiniz
  • İlerlemeniz üstte gösterilecek