Inheritance (Kalıtım): extends Anahtar Kelimesi ve Kod Tekrarını Önleme

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16
Inheritance: Kodun Genetik Mirası



1. Neden Kalıtım Kullanırız? (DRY Prensibi)​


Yazılımda en büyük düşmanımız kod tekrarıdır. Diyelim ki bir sistemde hem Yazilimci hem de Pazarlamaci sınıflarınız var. Her ikisinin de ismi, maaşı ve departmanı olmak zorunda. Bunları her iki sınıfa da tek tek yazmak yerine, ortak özellikleri bir üst sınıfta (Superclass) toplarız.

2. Temel Kavramlar​


Superclass (Base Class / Üst Sınıf): Ortak özelliklerin toplandığı ana sınıf (Örn: Calisan).

Subclass (Derived Class / Alt Sınıf): Miras alan ve üzerine kendi özelliklerini ekleyen sınıf (Örn: Yazilimci).

extends: Miras alma işlemini gerçekleştiren anahtar kelime.

3. Kod Üzerinde Uygulama​


Gelin, kod tekrarını nasıl önlediğimizi bir örnekle görelim:

Java:
// Üst Sınıf (Genel Özellikler)
class Calisan {
String isim;
double maas;

void yemekYe() {
    System.out.println(isim + " yemek yiyor.");
}

}

// Alt Sınıf (Özel Yetenekler)
class Yazilimci extends Calisan {
String anaDil;

void kodYaz() {
    System.out.println(isim + " " + anaDil + " ile kod yazıyor.");
}

}

public class Main {
public static void main(String[] args) {
Yazilimci yazar = new Yazilimci();
yazar.isim = "Ahmet"; // Calisan'dan miras geldi
yazar.maas = 50000;   // Calisan'dan miras geldi
yazar.anaDil = "Java"; // Kendine has özelliği

    yazar.yemekYe(); // Miras alınan metot
    yazar.kodYaz();  // Kendi metodu
}

}

4. Inheritance'ın Avantajları​



  • []Kodun Yeniden Kullanılabilirliği (Reusability): Bir kez yaz, her alt sınıfta kullan.
    []Kolay Bakım: Ortak bir özelliği değiştirmek istediğinizde sadece üst sınıfı güncellemeniz yeterlidir.
  • Hiyerarşik Düzen: Projedeki sınıflar arasında mantıksal bir bağ kurar.

5. Bilinmesi Gereken Kritik Kısıtlamalar​



  • []Tekli Kalıtım (Single Inheritance): Java'da bir sınıf aynı anda sadece tek bir sınıfı extends edebilir. (Bir çocuğun biyolojik olarak tek bir babası olması gibi).
    []Private Üyeler: Üst sınıftaki private değişkenler alt sınıfa miras geçmez. Bunlara erişmek için protected erişim belirleyicisi veya Getter/Setter metotları kullanılır.



Sonuç

Kalıtım, karmaşık sistemleri basitleştirmek ve "tekerleği yeniden icat etmemek" için vazgeçilmezdir. Ancak her şeyi her şeyden miras almamak gerekir; aralarında gerçekten bir "is-a" (bir ...'dır) ilişkisi (Yazılımcı bir Çalışandır) olduğundan emin olmalısınız.
 
Geri
Üst