06.03.2015 Views

Java Kitabı

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

JAva`nın çalışma mantığıyla başlayıp basitten gelişmişe iyi bir kaynak

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Şekil-5.6. Gizli Kalıtım<br />

Çoklu kalıtım (multiple inheritance), bazı konularda faydalı olmasının yanında birçok sorun<br />

oluĢturmaktadır. Örneğin iki ana sınıf düĢünün, bunların aynı isimde değiĢik iĢlemler yapan yordamları<br />

bulunsun. Bu olay türetilen sınıfın içerisinde birçok probleme yol açacaktır. Bu ve bunun gibi sebeplerden<br />

dolayı <strong>Java</strong> programlama dilinde çoklu kalıtım yoktur. Bu sebeplerin detaylarını ilerleyen bölümlerde<br />

inceleyeceğiz. ()<br />

<strong>Java</strong> programlama dilinde çoklu kalıtımın faydalarından yararlanmak için Arayüzler (Interface) ve dahili<br />

sınıflar (inner class) kullanılır. Bu konular yine ilerleyen bölümlerde inceleyeceğiz. ()<br />

5.2.2. Kalıtım ve İlk Değer Alma Sırası<br />

Tek bir sınıf içerisinde ilk değerlerin nasıl alındığı 3. bölümde incelenmiĢti ĠĢin içerisine birde kalıtım<br />

kavramı girince olaylar biraz karıĢabilir. Kalıtım (inheritance) kavramı bir sınıftan, baĢka bir sınıf<br />

kopyalamak değildir. Kalıtım kavramı, türeyen bir sınıfın, türetildiği sınıfa ait eriĢilebilir olan özellikleri<br />

alması ve ayrıca kendisine ait özellikleri tanımlayabilmesi anlamına gelir. Bir sınıfa ait nesne oluĢurken, ilk<br />

önce bu sınıfa ait yapılandırıcının (constructor) çağrıldığını önceki bölümlerimizden biliyoruz. ()<br />

Verilen örnekte, UcanYarasa nesnesi oluĢmadan evvel, UcanYarasa sınıfının ana sınıfı olan Yarasa<br />

nesnesi oluĢturulmaya çalıĢılacaktır. Fakat Yarasa sınıfıda Hayvan sınıfından türetildiği için daha<br />

öncesinde Hayvan sınıfına ait olan yapılandırıcı çalıĢtırılacaktır. Bu zincirleme giden olayın en baĢında ise<br />

Object sınıfı vardır. ()<br />

Örnek-5.6: IlkDegerVermeSirasi.java ()<br />

class Hayvan {<br />

public Hayvan() {<br />

System.out.println("Hayvan Yapilandiricisi");<br />

}<br />

}<br />

class Yarasa extends Hayvan {<br />

public Yarasa() {<br />

System.out.println("Yarasa Yapilandiricisi");<br />

}<br />

118

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!