Merhaba.Javada constructor neden inherit olamıyor?ayrıntılı açıklarsanız sevinirim.Teşekkürler

soruldu: 15 Eki '12, 13:57

Serxan's gravatar image

Serxan
51691106107
cevap kabul oranı: 46%

değiştirildi: 15 Eki '12, 14:13

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


Java da Constructor lar bir bakımdan Inherit olur. Şu örneğe bakalım ;

  class A {
         public A() {
            System.out.println("In A ctor");
         }
  }

  class B extends A {
         public B() {
            System.out.println("In B ctor");
         }

         public static void main(String [] args) {
            B obj;
            obj = new B();
         }
  }

Burda ekrana önce "In A ctor" sonra da "In B ctor" yazdırılır. Yanı B nin constructor u ilk adımda A nin constuctorunu otamatik olarak çağırır.

Bu durumun dışında Java da Constructor ların Inherit yapılmalarına izin verilmez. Yukarıdaki kodu aşşağıdaki gibi değiştirirsek

  class A {
         private float a;

         public A(float a) {
            this.a = a;
         }
  }

  class B extends A {
         private float b;

         public static void main(String [] args) {
            B obj;
            obj = new B();
         }
  }

bir derleme hatası alırız. Çümkü A için bir Default Constructor yok.

Constructor ların Inherit i dizayn olarak da sıkıntılı bir durum. Yukarıdaki örnekte, Compiler B
yi derlerken, B için bir default Constructor oluşturur ve burda b değişkenine 0.00f atanır. Bu durumda eğer A nın Constructor u Inherit olsaydı, onun içindeki a değişkenine ne atıyacaktı ?

permanent link

cevaplandı: 16 Eki '12, 02:53

mceliksoy's gravatar image

mceliksoy ♦
6.5k84988
cevap kabul oranı: 25%

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: 15 Eki '12, 13:57

Görüntüleme: 602 kez

Son güncelleme: 16 Eki '12, 02:53

powered by BitNami OSQA