Örneğin veritabanı oluştururken aşağıda kullanılmış durumda. Ne işe yarar ki bu?

public veritabani (Context con)
{
    super(con,"tablo1",null,1);
}

soruldu: 03 May '12, 09:33

kaptan's gravatar image

kaptan
445334244
cevap kabul oranı: 0%

değiştirildi: 03 May '12, 09:41

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Kalitimda super sinif ve sub sinif arasindaki baglantiyi super class contructor ve sub class-in consturukturunun icindeki super() sozu. Misal icin iki class dusunelim biri super digeri sub

public class Animal{

  public Animal(){

``

  }

}

public class Dog{

  public Animal(){

`` super();

  }

}

Burada super class consturunun parametresi ile sub class consturucturun icindeki super() methaodunun parametresi ayni oldugundan yani bos oldugunda bir hata meydana gelmez. Eyer asagidaki sekilde olursa.

public class Animal{

  public Animal(String name){

``

  }

}

public class Dog{

  public Animal(){

`` super();

  }

}

Bu sekilde olsa hata meydana gelir cunku super class constuructor ile sub class constuructorunun icindeki super() methodu ayni parametreye sahip dekil ancak bu problem su sekilde cozulur.

public class Animal{ public Animal(String name){ ``
} }

public class Dog{

  public Animal(){

`` super("Karabas");

  }

}

permanent link

cevaplandı: 03 May '12, 10:38

selcukoglu's gravatar image

selcukoglu
647111629
cevap kabul oranı: 16%

"super" keywordu Java'da iki amaçla kullanılır. İki durumda da bir kalıtım durumu, ve dolayısıyla da baba-oğul(torun da olabilir) ilişkisi söz konusudur.

1- Oğul/Torun sınıftan(extend eden) babanın(extend edilen) bir instance'ına erişmek ve duruma göre default(aynı pakette değilse) ya da private olmayan metodlarına veya class içinde tanımlı instance'lara erişebilmek için. Örn, aynı pakette tanımlı iki sınıf için:

public class BabaSinif{
  public String birString;
  public void birMetod(){
    //Metod işlemleri
  }

}
public class OgulSinif{
  void setBirString(){
     super.birString="Bu bir String'tir";
  }
  void birMetodCagir(){
     super.birMetod();
  }
}

2-Oğul/Torun sınftan(extend eden) babanın(extend edilen) duruma göre default (aynı pakette değilse) ya da private olmayan aynı tip parametrelere sahip yapılandırıcısına(constructor) erişmek için. Bu özellik kalıtımdaki yapılandırıcı overriding işleminde sık kullanılır. Örn, aynı pakette tanımlı iki sınıf için:

public class BabaSinif{
  public void BabaSinif(){
    //Metod işlemleri
  }

}
public class OgulSinif{
  public void OgulSinif(){
     //Bir yapılandırıcı override ediliyorsa ve içinde baba sınıfın yapılandırıcı metodu çağrılacaksa önce bu metod çağırılır.
     super();
     //Ardından oğul sınıfın yapılandırıcısına özgü diğer işler yapılır.
  }
}

Senin örneğinde ise veritabani isimli sınıf hangi sınıftan türüyorsa türediği sınıfın(babanın) aynı sıralı parametreli yapılandırıcı metodu(constructor) çağırılmış.

Yapılandırıcılar ne işe yarar, ne zaman çağırılır, ve kalıtım durumlarında hangi sıraya göre çalışırlar gibi sorulara eğer bilmiyorsanız internet üzerinden ya da BTSoru'ya başka bir soru sorarak öğrenebilirsiniz.

permanent link

cevaplandı: 07 May '12, 06:59

mabulgu's gravatar image

mabulgu ♦
2.8k43040
cevap kabul oranı: 26%

değiştirildi: 02 Tem '12, 16:54

Veritabani sinifinin extend bir üst sinifi olmali. Onun konstrüktörünü cagirmak icin super() metodu kullanilir.

permanent link

cevaplandı: 03 May '12, 09:42

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

super ile extend ettiğimiz base class'ın constructor' ını çağırırız.

permanent link

cevaplandı: 03 May '12, 10:49

querman's gravatar image

querman
391162028
cevap kabul oranı: 0%

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,076

Soruldu: 03 May '12, 09:33

Görüntüleme: 3,452 kez

Son güncelleme: 02 Tem '12, 16:54

powered by BitNami OSQA