Java Kalıtım (Inheritance) Nedir? IS-A & HAS-A İlişkileri ve Kod Örnekleri
Java kalıtım nedir? Nesne yönelimli programlamada (OOP) kalıtım (inheritance), kodun yeniden kullanımını ve çok biçimliliği (polymorphism) sağlar.
Bu yazıda java inheritance mantığı, IS-A ve HAS-A ilişkisi, örnek java kodları ve en çok merak edilen noktaları bulacaksınız.
Java’da Kalıtım (Inheritance) Temelleri
Java'da kalıtım, bir sınıfın başka bir sınıfın tüm özelliklerini ve metotlarını miras almasını sağlar.
Kalıtım ile kod tekrarı önlenir, programlama esnekliği ve OOP prensipleri güçlenir.
- Java kalıtım nedir? Bir class'ın başka bir class'ın tüm özellik ve davranışlarını miras almasıdır.
- inheritance nedir? OOP'nin temel kavramlarından biri; kodun tekrarını azaltır ve genişletilebilirlik sağlar.
- IS-A ilişkisi: extends ile kurulur (Araba IS-A Araç).
- HAS-A ilişkisi: Bir class'ın içinde başka bir class'a ait nesne barındırmasıdır (Koyun HAS-A Yun).
Java instanceof Operatörü ile Kalıtım Kontrolü
Java'da bir nesnenin belirli bir türde olup olmadığını kontrol etmek için
instanceof operatörü kullanılır.
class Test {
public static void main(String [] args) {
Test t1 = new Test();
Test t2 = new Test();
if (!t1.equals(t2))
System.out.println("eşit değiller");
if (t1 instanceof Object)
System.out.println("t1 bir objedir.");
}
}
Çıktı:
eşit değiller
t1 bir objedir.
equals(), toString(), hashCode() gibi).
Kodun Yeniden Kullanımı: Java Kalıtım Örneği
Kalıtım, temel sınıftaki metotların alt sınıflarda tekrar yazılmadan kullanılmasına olanak tanır.
class OyunSablonu {
public void sablonuTasarla() {
System.out.println("sablon tasarlanıyor.");
}
}
class Oyuncu extends OyunSablonu {
public void oyunOyna() {
System.out.println("oyun oynanıyor.");
}
}
public class TestSablonu {
public static void main (String[] args) {
Oyuncu oyuncu = new Oyuncu();
oyuncu.sablonuTasarla();
oyuncu.oyunOyna();
}
}
Çıktı:
sablon tasarlanıyor.
oyun oynanıyor.
sablonuTasarla() metodunu tekrar yazmadan kullanabiliyor.
Java’da Polimorfizm (Çok Biçimlilik) ve Kalıtım
Polimorfizm, kalıtım sayesinde bir nesnenin üst sınıf tipinde davranmasını sağlar.
class OyunSablonu {
public void sablonuTasarla() {
System.out.println("sablon tasarlanıyor.");
}
}
class Oyuncu extends OyunSablonu {
public void oyunOyna() {
System.out.println("oyun oynanıyor.");
}
}
class OyunBolumu extends OyunSablonu {
public void getBolumler() {
System.out.println("Bölüm Seçiliyor");
}
}
public class TestSablonu {
public static void main (String[] args) {
OyunBolumu oyun = new OyunBolumu();
Oyuncu oyuncu = new Oyuncu();
doSablon(oyun);
doSablon(oyuncu);
}
public static void doSablon(OyunSablonu sablon) {
sablon.sablonuTasarla();
}
}
Çıktı:
sablon tasarlanıyor.
sablon tasarlanıyor.
IS-A & HAS-A İlişkileri Java’da Nasıl Kurulur?
IS-A ilişkisi, bir sınıfın başka bir sınıftan extends anahtar kelimesi ile türemesidir.
HAS-A ilişkisi ise bir sınıfın başka bir sınıfın nesnesini içererek kompozisyon yapmasıdır.
public class Arac { }
public class Araba extends Arac { }
public class Toyota extends Araba { }
public class Hayvan { }
public class Koyun extends Hayvan {
private Yun benimYunum;
}
Yun nesnesi tutar).
Java Kalıtımının Avantajları
- Kodun tekrarını önler, yazılımı sadeleştirir.
- Çok biçimlilik (polymorphism) ile esnek ve ölçeklenebilir kodlama sağlar.
- OOP mantığını en iyi şekilde uygulatır.
- IS-A ve HAS-A ilişkileri ile gerçek hayatı daha doğru modellemenizi sağlar.
Sık Sorulan Sorular
Java kalıtım nedir ve neden kullanılır?extends anahtar kelimesi ile inheritance sağlanır.
extends), HAS-A ise bir class'ın başka bir class'ı içinde nesne olarak bulundurmasıyla olur.
İlgili Yazılar
Tüm yazılar için sitemizi ziyaret edin!