SORU
3 Kasım 2010, ÇARŞAMBA


Ne zaman süper kullanırım() Java?

Sınıf mirası ve Java dersinde bu konuyu şimdi öğreniyorum, ama anlamıyorum. super() çağrı kullanmalıyım?

Düzenleme:
Bu kod örneği, nerede buldumsüper.değişkenkullanılır:

class A
{
        int k = 10;
}
class Test extends A
{
    public void m()
    {
        System.out.println(super.k);
    }
}

Burada, super süper-sınıf k değişken erişmek için kullanmanız gerekir anlıyorum. Ancak, herhangi bir diğer durumda, super(); ne yapar? Kendi?

CEVAP
3 Kasım 2010, ÇARŞAMBA


Aramatam olaraksuper()her zamangereksiz. Açıkça örtülü olarak başka yapılacak ne yapıyor. Eğer süper yapıcı bir çağrı atarsanız, no-argüman yapıcı süper zaten otomatik olarak çağrılacak çünkü. Kötü bir üslup olduğunu söylemek değil; bazı insanlar açık olmak gibi.

Yararlı olur ancak, süper oluşturucu alt sınıfı geçmek istediğiniz değişkenleri alır.

public class Animal {
   private final String noise;
   protected Animal(String noise) {
      this.noise = noise;
   }

   public void makeNoise() {
      System.out.println(noise);
   }
}

public class Pig extends Animal {
    public Pig() {
       super("Oink");
    }
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • akalyne

    akalyne

    13 Mayıs 2009
  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • Numberphile

    Numberphile

    15 EYLÜL 2011