JAVA NESNE PROGRAMLAMA 2 – KALITIM – Inheritance

**Nesne programlama ile ilgili Method sınıf vs kod yazımı bildiğiniz varsayılarak anlatılmayacaktır.. Method nedir, sınıf nedir bilmeyenler için yine örnekler içinde basit bir kaç gösterim olacaktır. Sizin açınızdan daha detaylı öğrenmeniz daha iyi olacaktır.

Kalıtım :

Kalıtım nedir ? basit bir tanım vermek yerine bir örnek ile anlatayım. İki adet sınıfa sahipsiniz. Bunlardan ilki A model  (marka) bir bilgisayar yada aklınıza ne gelirse. Bir firma kendine özgü bir ürün üretirken en önemli temeli özgünlüğü olmasıdır. Bu A model ile bir ilkleri oluşturdunuz. İşte ne kadar boyutu olacağı, yan tasarımı, vs yani o ürünü diğerlerinden ayıran ve size özgü bir ürün ile ilk kez piyasaya çıktınız. Şimdi ne oldu peki ? Zaman geçti, süre geçti ve bu A marka çıkardığınız ilk ürününüz piyasada gözden düşmeye başladı. Hemen dediniz ki bu ürünün kendine özgü özellikleri dursun ben buna ek bir kaç özellik ekleyeyim. Şuan Dünyaca ünlü model cep telefonu firmalarının yaptıkları bu değil mi ? Hikaye tarzı anlattım sözü hemen kısa kesiyorum. İlk ürettiğiniz A model’in özelliklerini  (istediğinizi) alarak yeni bir model’i üretmeye kalıtım diyoruz. Yani A modelinin özelliklerini miras alarak yeni özellikleri de içeren bir alt sınıf türetiyoruz.

Bu örneği anlamayanlar için başka bir örnek vermek gerekirse. İki adet sınıf düşünün tekrar. 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. Mantık aşağıdaki örnek’tedir.

[izin] class [A] extends [Bmodel]{}

public class cocukSinifi extends ebeveynSinifi {}

*Bir sınıf yalnızca başka bir sınıftan bir kez kalıtım alabilir.

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

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 olduğ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.

Metot Overload

Bir metod eğer aynı isimle ve farklı parametreler ile çağrılırsa bu method overload olmuştur.

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. Daha detaylı bilgi için tıklayın.

 

Kalıtımı daha iyi anlamak için bir örnek üzerinde anlatayım.

Amodel

Bmodel

Kalitim

psvm içinde eklerseniz Bmodel’in içinde olmayan kontrolEt’e kalıtım sayesinde ulaştık.

 

 

 

 

 

Post Author: umiitkose

Bir Cevap Yazın

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

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">