Java'da kalıtım
extends ile ebeveynde yazili bir metodu kullanabilecek cocuk tur olusturun. Car uzerine horn koyun, beep yazsin. class Truck extends Car yazin. Yard.java icinde bir Truck kurun ve t.horn() cagirin. javac Yard.java ile derleyin ve java Yard calistirin. Ekran beep gostermeli. Ikinci demo da duz bir Car kurar; cocuk varken ebeveynin hala calistigini gorursunuz. super sonraki sayfa icin kalsin. Bu sayfada Truck uzerinde horn yeniden yazmayin — override sonra gelir.
Cocuk ebeveyn metodunu tutar
paths sayfasi yerleri Paths.get ile adlandirdi. Bu sayfa yeni modul acar: bir sinif baska sinifin cocugu olabilir. Yard.java adli ogretim dosyasini acin. Public sinif adini Yard tutun, dosya adiyla uyussun. Kalan Route yol demolarini, Store yazicilarini, Reader tarayicilarini ve klavye Scanner kalintilarini silin. Program yazma beklememeli. Bu derste import satiri gerekmez.
Public sinifin ustunde package-private ebeveyn turunu bildirin:
class Car {
Car icinde beep yazan void horn() ornek metodu yazin:
System.out.println("beep");
Sonra cocugu bildirin:
class Truck extends Car {
Bu sayfada Truck govdesini bos tutun. Cocuk horn yeniden yazmaz. Bos suslu parantezler Truck bir Car turudur demek icin yeter.
Yard.main icinde truck kurun ve kalitimla gelen metodu cagirin:
Truck t = new Truck();
t.horn();
Cagri calisir cunku extends Car Truck ile Car arasini baglar. horn u Truck icine kopyalamadiniz.
class Car {
void horn() {
System.out.println("beep");
}
}
class Truck extends Car {
}
public class Yard {
public static void main(String[] args) {
Truck t = new Truck();
t.horn();
}
}
Yard.java nin oldugu klasorden javac Yard.java calistirin. Parantez ve noktali virguller uyunca javac kendi satirini yazmaz. Sonra java Yard calistirin — java Yard.java degil. Calistirma komutundan .java son ekini cikarin. Bu dosyada tek public sinif var, dosya adi Yard ile uyusur. Yardimci turler Car ve Truck bu baslangic biciminde public olmadan kalir. Bir dosyada uc public sinif javac i reddeder — classes sayfasindaki kurali koruyun.
Ekran beep gosterir. Calistirmayi bir kez yuruyun. Java Yard.main den baslar. new Truck() truck nesnesi kurar. t.horn() kalitimla ebeveyn Car uzerinde horn bulur. Metod beep yazar. javac Truck uzerinde horn bulamiyor derse extends Car satiri eksik veya yanlis — geri koyun. note.txt veya yol yazisi gorurseniz Route kalintisi hala calisiyor — java Yard a gecin. Terminal yazma bekliyorsa klavye Scanner kalintisi dosyada — silin.
extends i dikkatle yazin. Yanlis virgul veya implements kelimesi bu ders degil. Kalitim burada cocuk ve ebeveyn adlari arasindaki extends anahtar kelimesidir. Cocuk adi once gelir: Truck extends Car, tersi degil.
Bu sayfada super yazmayin. Ebeveyn yapiciyi super ile cagirmak sonraki derstir. Truck icinde ikinci horn da yazmayin; override hikayesi sonra. Bugun cocuk bos kalir ve yine ebeveyn metodunu kullanir. Bos govde kasitli ogretimdir, horn u Truck a kopyalayarak duzeltilecek hata degil.
📊 Parent and child on this page
| Piece | Role |
|---|---|
| Car | parent type that owns horn |
| Truck | child type via extends Car |
| Yard | public starter with main |
| horn | prints beep; written only on Car |
Ebeveyn yalniz hala calisir
Ikinci program ayni Car, ayni bos Truck extends Car ve ayni public Yard i tutar. main icinde hem Car hem Truck kurun ve her birinde horn cagirin.
class Car {
void horn() {
System.out.println("beep");
}
}
class Truck extends Car {
}
public class Yard {
public static void main(String[] args) {
Car c = new Car();
Truck t = new Truck();
c.horn();
t.horn();
}
}
javac Yard.java ile derleyin, sonra java Yard calistirin. Ekran beep, sonra yine beep gosterir. Ilk satir duz Car dan gelir. Ikincisi horn u devralan Truck dan. Cocuk yapmak ebeveyn turunu silmedi veya bozmadı. Iki nesne de Car uzerinde bir kez yazilan ayni metod govdesini cagirabilir. Her nesneyi hala new ile siz kurarsiniz; extends satiri otomatik truck kurmaz.
Bu karsilik kontrol noktasidir. Kalitim var olan metoda cocuk yolu ekler. Ebeveyni kaldirmak zorunda degilsiniz. Truck tan extends Car yi kaldirsanız t.horn() derlenmez cunku Truck artik horn almaz. Ogretim cocugu icin extends i tutun. Tek truck dosyasini sessiz bir beep istediginizde secin. Iki nesne dosyasini ebeveynin hala yanit verdigiini kanitlamak icin secin.
Route uzerinde paths ile karsilastirma
paths sayfasinda java Route klasor ve dosya adlandi. Bu sayfada java Yard turleri extends ile baglar. Route dosyalarini yakinlarda duruyorsa tarih olarak tutun; kalitim demolarinda ekranin derse uymasi icin java Yard calistirin.
extends, ebeveyn metodunu yeniden kullanma ve bos cocuk govdesi yeni parcalardir. Onceki OOP sayfalarindan new ve ornek metodlari bilirsiniz. Bugun bu parcalar bu kurs yolunda ilk kez kalitimla bulusur. Derleme ve calistirma komutlari kisa kalsin diye Car, Truck ve Yard ogretim adlarini koruyun.
super icin bu sayfa ne birakir
Bu sayfa super yazmadan ebeveyn metodunu kullanan cocugu gosterir. Sonraki sayfa super i tanitir; cocuk bilerek ebeveynle konusur, ozellikle yapicilar etrafinda. Burada extends ve devralinan horn cagrisinda kalin. Bu Yard demolarina henuz super() zorunlulugu eklemeyin.
super oncesi
Truck extends Car yazabilir, Truck kurup horn dan beep gorebilirsiniz. Duz Car da kurup ebeveynin hala beep yazdigini gorebilirsiniz. Yard.java yi derleyin ve saklanan her demo icin sirayla java Yard calistirin. Cocuk bos kaldi ve yine ebeveyn metodunu kullandi. Sonraki sayfa super; cocuk ebeveynle daha dogrudan konusur.
Tek truck demosunu net devralinan cagri icin tutun. Iki nesne demosunu ebeveynin yalniz calistigini kanitlamak icin tutun. Simdilik super i bu sayfadan uzak tutun. Bu uc aliskanlik devam etmeden onceki kontrol noktasidir. Kendi horn unu yazmayan Truck tan beep ciktiginda kalitim bu ders icin isini yapmistir ve super konusuna hazirsiniz.
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 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