Java Kalıtım (Inheritance) Nedir? IS-A & HAS-A İlişkileri ve Kod Örnekleri
Bu yazıda Java inheritance (kalıtım) konusunu detaylı şekilde inceleyeceğiz. IS-A ve HAS-A ilişkileri, polymorphism ve gerçek Java örnekleri ile konuyu net şekilde anlayacaksınız.
Java Kalıtım (Inheritance) Nedir?
Java’da kalıtım, bir sınıfın başka bir sınıfın özelliklerini ve metotlarını devralmasıdır. Bu sayede kod tekrarını azaltır ve daha esnek bir yapı sağlar.
- IS-A ilişkisi: extends ile kurulur (Araba IS-A Araç)
- HAS-A ilişkisi: bir sınıfın başka bir sınıfı içermesidir
Java instanceof Kullanımı
Bir nesnenin hangi tipe ait olduğunu kontrol etmek için instanceof kullanılır.
if (obj instanceof Object) {
System.out.println("Bu bir Object");
}
Kalıtım Örneği
class OyunSablonu {
public void sablonuTasarla() {
System.out.println("tasarlanıyor");
}
}
class Oyuncu extends OyunSablonu {
public void oyunOyna() {
System.out.println("oyun oynanıyor");
}
}
Alt sınıf, üst sınıftaki metotları tekrar yazmadan kullanabilir.
Polymorphism ve Kalıtım
public static void doSablon(OyunSablonu sablon) {
sablon.sablonuTasarla();
}
Bu yapı sayesinde farklı nesneler aynı metot ile çalıştırılabilir.
IS-A ve HAS-A İlişkisi
class Arac { }
class Araba extends Arac { }
Araba IS-A Arac
class Koyun {
private Yun yun;
}
Koyun HAS-A Yun
Kalıtımın Avantajları
- Kod tekrarını azaltır
- Daha temiz mimari sağlar
- Polymorphism ile esneklik kazandırır
- OOP prensiplerini güçlendirir
Sık Sorulan Sorular
Java inheritance nedir?
Bir sınıfın başka bir sınıfın özelliklerini devralmasıdır.
extends ne işe yarar?
Kalıtım ilişkisi kurar.
IS-A vs HAS-A farkı nedir?
IS-A kalıtım, HAS-A ise composition ilişkisidir.