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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

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!