Salam.Polimorfizmde overriding olmasi vacibdir?

soruldu: 07 Tem '12, 09:04

mehmanbashirov's gravatar image

mehmanbashirov
211253138
cevap kabul oranı: 16%

değiştirildi: 07 Tem '12, 14:40

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183

Tam olarak neyi kasdediyorsun?

(07 Tem '12, 09:05) UsTa UsTa's gravatar image
1

Konud dışı ama bana bir katkısı oldu. Memlekette kediye neden pisik dendiğini 26 yaşımda kavramış bulunuyorum, demek Azeri dostlarımızın dilinde etkilenmişler. + 1 :)

(07 Tem '12, 09:38) Turgay Can Turgay%20Can's gravatar image

Bizim köyde de püsük derler (Kayseri>Öksüt). Bu Türkçe'nin hası. Azeri olmakla alakası bulunmuyor.

(07 Tem '12, 12:04) UsTa UsTa's gravatar image

Javada override kullanmadan polimorfizm mumkunmu?

(07 Tem '12, 15:03) mehmanbashirov mehmanbashirov's gravatar image

Salam Mehman Hocam,

Polimorfizim Super class-in referansi ile sub class-i idare etmektir. Aslinda object olusturmanin manigini baktigimizda

  Araba a = new Araba();

'a' referansi sayesinde biz method-lara ulasiriz. 'a' referansinin tipi Araba oldugu icin biz ancak araba cilass-inin icindeki method ve deyisenleri gorebiliriz. referans hangi object-e bagli ise o object-in method-u calisir. Asagidaki ornegi inceliyecek olursak.

Burada 'a' referans-i Araba tipinde oldugu icin ancak Araba-nin icindekileri gorebilir. ve 'a' referansi yine kendi object-ine baglendigi icin kendi icindeki method callistiracak.

public class Run{ public static void main(String args[]){ Araba a = new Araba(); a.teker(); a.kapi(); } }

Console

Arabanin 4 tekeri var.

Arabanin 4 kapisi var.

Yada asagidaki gibi yazarsak. 'a' referansi Opel tipinde oldugu icin Opel-in icindeki methodlari goruyor. ve 'a' referans-inin bagli oldugu object Opel oldugu icin Opel-in method-larini calistirir.

public class Run{ public static void main(String args[]){ Opel a = new Opel(); a.ucuzparca(); a.kapi(); } }

Console

Opel-in parcalari ucuz...

Opel-in 2 kapisi var.

Simdi gelelim polimorfizimi kullanmaya. 'a' referansi Araba tipinde oldugu icin Araba-nin icindeki method-lari gorur ce method calisrken 'a' referansi Opel object-ine bagli oldugu icin Override olan methodlari Opel object-iden calistirir.

public class Run{ public static void main(String args[]){ Araba a = new Opel(); a.teker(); a.kapi(); } }

Console

Arabanin 4 tekeri var.

Opel-in 2 kapisi var.

public class Araba{

  public void teker(){
       System.out.println("Arabanin 4 tekeri var.");
  }

  public void kapi(){
       System.out.println("Arabanin 4 kapisi var.");
  }
  .
  .
  .

}

public class Opel extends Araba{

  @Override  
  public void kapi(){
       System.out.println("Opel-in 2 kapisi var.");
  }

  public void ucuzparca(){
       System.out.println("Opel-in parcalari ucuz...");
  }
  .
  .
  .

}

Biraz uzun bir aciklama yazdim eyer sozlerimde yanlis varsa kusura bakmayin.

Iyi calismalar.

permanent link

cevaplandı: 09 Tem '12, 02:06

selcukoglu's gravatar image

selcukoglu
647111629
cevap kabul oranı: 16%

Abdulkadir Hocam. Yazdiginiz classlarda Opel Arabaya bagli oldugu ucun Opelin override olunmus methodun calisdirdi. Sizin yazdiginizla bunun arasindaki ferq nedir?

package az; public class Running {

public static void method(Araba a){
a.kapi();
a.teker();

}
public static void main(String[] args) {

method(new Araba());
    method(new Opel());
}

}

(09 Tem '12, 16:31) mehmanbashirov mehmanbashirov's gravatar image

Mantıken bana farz gibi geliyor hocam.

permanent link

cevaplandı: 07 Tem '12, 15:53

molgun's gravatar image

molgun
1.3k1921
cevap kabul oranı: 23%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077

Soruldu: 07 Tem '12, 09:04

Görüntüleme: 814 kez

Son güncelleme: 10 Tem '12, 06:16

powered by BitNami OSQA