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.

interface BuzUstundeKayabilme {<br />

public void buzUstundeKay();<br />

}<br />

interface SutAtabilme {<br />

public void sutAt();<br />

}<br />

class SportmenMehmet implements BuzUstundeKayabilme,<br />

SutAtabilme {<br />

public void buzUstundeKay() {<br />

System.out.println("SportmenMehmet buz ustunde<br />

kayiyor");<br />

}<br />

public void sutAt() {<br />

System.out.println("SportmenMehmet sut atiyor");<br />

}<br />

}<br />

Bu örneğimizde SportmenMehmet, BuzUstundeKayabilme ve SutAtabilme özelliklerine sahip olmuĢtur.<br />

Arayüzler içerisindeki (BuzUstundeKayabilme,SutAtabilme) gövdesiz (soyut) yordamları<br />

(buzUstundeKay(), sutAt()), bu arayüzlere eriĢen sınıf tarafından kesinlikle iptal edilmelidir<br />

(overrride). Eğer iptal edilmez ise, derleme anında (compile-time) <strong>Java</strong> tarafından gerekli hata mesajı<br />

verilir. ()<br />

Örneğimizden anlaĢılabileceği üzere arayüz (interface) ile soyut (abstract) sınıf arasında büyük fark vardır.<br />

En baĢta kavramsal olarak bir fark vardır. Bu kavramsal fark nedir derseniz hemen açıklayalım; Soyut bir<br />

sınıftan türetilme yapıldığı zaman, türetilen sınıf ile soyut sınıf arasında mantıksal bir iliĢki olması<br />

gerekirdi, örnek vermek gerekirse "Yarasa bir Hayvandır" gibi veya "Müdür bir ÇalıĢandır" gibi....Geçen<br />

bölümlerde incelediğimiz bir iliĢkisi. Fakat arayüzler ile bunlara eriĢen sınıflar arasında kalıtımsal bir iliĢki<br />

bulunmayabilir. ()<br />

7.1.4. Arayüzlerin Kalıtım (İnheritance) Yoluyla Genişletilmesi<br />

Bir arayüz baĢka bir arayüzden türetilerek yeni özelliklere sahip olabilir; böylece arayüzler kalıtım yoluyla<br />

geniĢletilmiĢ olur. Olayları daha iyi anlayabilmek için önce UML diyagramını çizip sonrada <strong>Java</strong><br />

uygulamasını yazalım. ()<br />

167

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

Saved successfully!

Ooh no, something went wrong!