Java’da Inheritance (IS-A)

sametklou

Java’da Inheritance (IS-A)

Java'da miras alma konsepti, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını alabilmesini sağlar. Bu durum, sınıf hiyerarşisini oluşturur ve kodun tekrar kullanılabilirliğini arttırır.

Inheritance Nedir?

Inheritance, bir sınıfın diğer sınıflardan özelliklerini ve davranışlarını miras alabilmesini sağlayan bir mekanizmadır. Miras alınan sınıf, üst sınıf veya ana sınıf olarak adlandırılırken, miras alan sınıf ise alt sınıf veya alt sınıf olarak adlandırılır.

Java'da inheritance ilişkisini belirtmek için extends anahtar kelimesi kullanılır. Örneğin:

public class Person {
    String name;
    int age;
    
    // Constructor
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

public class Student extends Person {
    String studentId;
    
    // Constructor
    public Student(String name, int age, String studentId) {
        super(name, age); // Üst sınıfın constructor'ını çağırır
        this.studentId = studentId;
    }
}

Yukarıdaki örnekte Person sınıfından Student sınıfı miras almıştır.

IS-A İlişkisi

Inheritance ilişkisi, IS-A ilişkisi olarak da adlandırılır. Yani bir sınıf, diğer sınıfa ait bir türdür. Örneğin, Student sınıfı bir Person türündendir.

Student student = new Student("John", 20, "S12345");
Person person = student; // Geçerli

Inheritance Kullanmanın Avantajları

  • Kod tekrarını azaltır
  • Kodun daha organize olmasını sağlar
  • Bakımı kolaylaştırır
  • Esneklik sağlar

Inheritance kullanılırken dikkat edilmesi gereken noktalar şunlardır:

  • Java'da multiple inheritance (bir sınıfın birden fazla sınıftan miras alması) desteklenmez.
  • Constructor ve private üyeler inheritance ile aktarılamaz.

Java'da inheritance konseptini öğrenmek, nesne yönelimli programlamaya hakim olmanın anahtarıdır. Bu konuya iyi hakim olmak, karmaşık projelerde kodunuzu daha verimli bir şekilde yazmanızı sağlar.