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.

7.1.5. Çakışmalar<br />

Arayüzlerin içerisinde dönüĢ tipleri haricinde her Ģeyleri aynı olan gövdesiz (soyut) yordamlar varsa, bu<br />

durum beklenmedik sorunlara yol açabilir. Yazılanları <strong>Java</strong> uygulaması üzerinde gösterilirse; ()<br />

Örnek: Cakisma.java ()<br />

interface A1 {<br />

public void hesapla();<br />

}<br />

interface A2 {<br />

public void hesapla(int d);<br />

}<br />

interface A3 {<br />

public int hesapla();<br />

}<br />

class S1 implements A1,A2 { // sorunsuz<br />

public void hesapla() { //adas yordamlar(overloaded)<br />

System.out.println("S1.hesapla");<br />

}<br />

public void hesapla(int d) { //adas yordamlar(overloaded)<br />

System.out.println("S1.hesapla " + d );<br />

}<br />

}<br />

/*<br />

! Hatali !, adas yordamlar (overloaded)<br />

donus tiplerine gore ayirt edilemez<br />

*/<br />

class S2 implements A1,A3 {<br />

public void hesapla() {<br />

System.out.println("S2.hesapla");<br />

}<br />

}<br />

/* ! Hata !<br />

public int hesapla() {<br />

System.out.println("S2.hesapla");<br />

return 123;<br />

}<br />

*/<br />

Cakisma.java örneğini derlenirse (compile), aĢağıdaki hata mesajı ile karĢılaĢılır: ()<br />

Cakisma.java:27: hesapla() in S2 cannot implement<br />

hesapla() in A3; attempting to<br />

use incompatible return type<br />

found : void<br />

required: int<br />

class S2 implements A1,A3 {<br />

170

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

Saved successfully!

Ooh no, something went wrong!