Kategoriler
Java

Java’da Kalıtım – Inheritance

apuntes_de_java-logo

Diğer dersleri gördünüz mü? https://selimkaratas.com.tr/java-se-ders-notlari

Java’da Kalıtım – Inheritance

İki adet sınıf düşünelim. Birinin adı Ebeveyn diğerinin adı Çocuk olsun. Ebeveyn sınıfının özelliklerini anne+baba’nın işlevleri oluşturmaktadır. Çocuk ise bazı özellikler bakımından anne babaya benzerlik göstermektedir. (saç rengi, göz rengi) Bunların yanından çocukta anne ve babasında olmayan bazı özelliklerde yer alabilir.  ( Anne baba kısa boylu iken çocuğun uzun olması). Ebeveyn gibi üst sınıflara süper sınıflar denir.  Bunlardan türetilen alt sınıflara alt sınıflar denir. 

Java’da kalıtım bir sınıfın kendine ait özellikleri başka bir sınıfa aynen aktarması ya da bazı özellikleri diğer sınıflara izin vermesidir.

public class AltSinif extends superSinif {

}

bizim örneğimiz için 

public class cocukSinifi extends ebeveynSinifi {

}

Extends deyimi: bir sınıfa ait özelliklere başka bir sınava miras almak için kullanılır.

Her alt sınıf doğrudan bir tane süper sınıfa sahip olabilir. Her alt sınıf süper sınıfın özelliklerini taşır.  Süper sınıftan alınan bazı özellikler değiştirilebilir. Aynen kullanılmak zorunda değildir. Kalıtımın basamakları çok uzun olmamalıdır.  Bu kötü tasarıma neden olur.

Kalıtımın Faydaları

Daha önceden yazılmış kod parçacıkları tekrar tekrar yazılmadan başka sınıflarda kullanılabilir.  if, else, switch gibi kontrol ifadelerinin oolduğu sınıflar kötü tasarım örnekleridir. Bunun yerine kalıtım tercih edilmelidir.

Metot Overriding

Herhangi bir alt sınıfta süper sınıfa ait bir metot aynı isim, aynı parametre ve dönüş tipi ile kullanılırsa overriding yapmış oluruz. (üzerine yazmak)  Alt sınıfta yeni bir nesne ürettiğimizde  süper sınıfa göre değil yeni sınıfa ( alt sınıfa) uygun çalışmaktadır.

Kalıtım örnek çalışması:

kalıtım örnek

toString Metodu:

Obje sınıfına ait bir metotdur. Nesneleri metin halinde gösterir.  Bir süper sınıf olan object sınıfından çağırıp kullanırız.

super() deyimi:

Tüm default yapılandırıcılar kalıtım ağacında yukarıdan aşağı doğru  java tarafından gizli olarak ve otomatik aktarılır. Bu yapılandırıcıları kullanmak için super() deyimini kullanırız.

Bir örnek üzerinde tüm kalıtım özelliklerini görelim.

Bizim bir hayalimiz var. ( Hocam selamlar 🙂 )

Personel sınıfımızda çeşitli bilgiler oluşturduk. Kişilere ait ad,soyad,yaş gibi bilgileri. Bunları personel sınıfında yazdırıyoruz. super deyimi ile bunu Ogrenci sınıfına aktarıyoruz ve ekstra olarak OgrenciNo bilgisini o sınıfta kullanıyoruz.  Ekstra olarak toString metodunu String sınıfından override ederek kullanıyoruz.

Öncelikle personel.java sınıfımız

personel 0

personel 01

personel 2

 

Şimdi ogrenci.java sınıfımıza bakalım

ogrenci 1

CropperCapture[423]

 

Burada da main sınıfımıza ait detaylarımız var.main sınıfımız

Çıktımız aşağıdaki gibi olacaktır:

çıktı

https://github.com/sekaist/KalitimOrnekleri2

adresinden detaylı olarak yapılmış kalıtım örneğini inceleyebilirsiniz.

“Java’da Kalıtım – Inheritance” için 3 yanıt

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir