Java programlama dili, nesne yönelimli programlamaya dayanan güçlü bir dil olarak bilinir. Nesne yönelimli programlama, kodun modüler, sürdürülebilir ve yeniden kullanılabilir olmasını sağlayan bir yaklaşımdır. Bu yaklaşımın temel öğelerinden biri olan “inheritance” veya Türkçe adıyla “miras alma, kalıtım”, programlamanın önemli bir parçasıdır. Bu yazımızda , Java’daki inheritance kavramını detaylı bir şekilde ele alacak, nasıl kullanıldığını anlatacak ve örneklerle konuyu pekiştirmeye çalışacağız.

Inheritance Nedir?

Inheritance, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını miras almasını sağlayan bir mekanizmadır. Bir sınıfın başka bir sınıftan miras alması, kodun yeniden kullanılabilirliğini ve programlama sürecini kolaylaştırır. Miras alan sınıf, miras veren sınıfın özelliklerini ve davranışlarını kullanabilir ve aynı zamanda kendi özel özelliklerini ve davranışlarını da ekleyebilir.

Inheritance Nasıl Kullanılır?

Java’da inheritance kullanmak için “extends” anahtar kelimesi kullanılır. Bir sınıfın başka bir sınıftan miras alması için, miras almak istediğimiz sınıfın adından sonra “extends” anahtar kelimesi ve miras veren sınıfın adı yazılır. Aşağıda basit bir örnekle inheritance kullanımını gösterelim:

class Araba {
  String marka;
  String model;

  public void calistir() {
    System.out.println("Araba çalıştı!");
  }
}

class Otomobil extends Araba {
  int hiz;

  public void hizlan() {
    System.out.println("Otomobil hızlandı!");
  }
}

public class Main {
  public static void main(String[] args) {
    Otomobil otomobil = new Otomobil();
    otomobil.marka = "Ford";
    otomobil.model = "Focus";
    otomobil.calistir();
    otomobil.hizlan();
  }
}

Yukarıdaki örnekte, “Araba” adında bir sınıf tanımladık ve “Otomobil” adında başka bir sınıf oluşturduk. “Otomobil” sınıfı, “Araba” sınıfından miras aldığı için “marka” ve “model” özelliklerini kullanabilir. Ayrıca, “calistir()” metodunu da kullanabilir. “Otomobil” sınıfı ayrıca kendi özgün bir özelliği olan “hiz” özelliğini ve “hizlan()” metodunu da içerir.

Inheritance’ın Avantajları:

  • Inheritance, kodun yeniden kullanılabilirliğini artırır. Bir sınıfın özelliklerini ve davranışlarını miras alan diğer sınıflar, aynı kodu tekrar tekrar yazma ihtiyacını ortadan kaldırır. Bu, kodun daha kısa, daha anlaşılır ve daha bakımı kolay hale gelmesini sağlar.
  • Kodun modülerliğini artırır. Miras alınan sınıfın değiştirilmesi durumunda, miras alan sınıfların da otomatik olarak etkilenmesi sağlanır. Bu, kodun bakımını ve güncellemelerini daha kolay hale getirir.
  • Nesne yönelimli programlamada sınıf hiyerarşisini oluşturur. Miras veren sınıf, genellikle bir üst sınıf veya temel sınıf olarak adlandırılırken, miras alan sınıflar alt sınıflar veya türetilmiş sınıflar olarak adlandırılır. Bu hiyerarşik yapı, programcılara kod organizasyonunu ve sınıflar arasındaki ilişkileri daha iyi anlama ve yönetme imkanı sağlar.
Bu yazı dikkatini çekebilir.   C Programlama If-Else Yapısı

Java Inheritance Örnek Kullanım

Geometrik Şekiller:

class Sekil {
  public void ciz() {
    System.out.println("Bir şekil çizildi.");
  }
}

class Dikdortgen extends Sekil {
  public void ciz() {
    System.out.println("Bir dikdörtgen çizildi.");
  }
}

class Kare extends Sekil {
  public void ciz() {
    System.out.println("Bir kare çizildi.");
  }
}

public class Main {
  public static void main(String[] args) {
    Sekil sekil1 = new Sekil();
    sekil1.ciz();

    Sekil sekil2 = new Dikdortgen();
    sekil2.ciz();

    Sekil sekil3 = new Kare();
    sekil3.ciz();
  }
}

Bu örnekte, “Sekil” adında bir sınıf ve “Dikdortgen” ile “Kare” adında iki alt sınıf tanımladık. Her üç sınıfın da “ciz()” metodu bulunmaktadır. Ancak alt sınıflardaki bu metodlar, kendi şekillerine özgü bir çizim işlemi gerçekleştirir. Miras alma sayesinde, şekil nesnesini tanımlarken, hangi alt sınıfın kullanılacağına karar verebilir ve şekle özgü davranışı elde edebiliriz.


Java programlama dilinde inheritance (miras alma) kavramı, nesne yönelimli programlamanın temel yapı taşlarından biridir. Inheritance, kodun yeniden kullanılabilirliğini artırır, kodun modülerliğini sağlar ve sınıflar arasındaki hiyerarşik ilişkileri tanımlamayı sağlar. Bu makalede, inheritance’ın ne olduğunu, nasıl kullanıldığını ve avantajlarını ele aldık. Daha fazlası için ‘Java Dersleri‘ adlı kategorimize göz atabilirsiniz.