SORU
30 EYLÜL 2008, Salı


Polimorfizmi ağır basan vs vs Aşırı

Biri sorduğunda Java açısından:

polimorfizmi nedir?

Aşırı yükleme veya geçersiz kabul edilebilir bir cevap olur muydu?

Fazlası için biraz fazla olduğunu düşünüyorum. Hiçbir uygulama yöntemi ile tanımlanan soyut bir temel sınıf vardı, ve alt sınıfta bu yöntemi tanımlanmışsa, o hala overridding?

Aşırı doğru bir cevap değil bence.

CEVAP
30 EYLÜL 2008, Salı


Polimorfizmi ifade etmek için en temiz yol soyut temel sınıf (veya arabirim)

public abstract class Human{
   ...
   public abstract void goPee();
}

Bu sınıf goPee() yöntemi İnsanlar için tanımlanabilir değildir, çünkü soyut. Alt sınıflardan Erkek ve Kadın için sadece tanımlanabilir. Ayrıca, İnsan soyut bir kavram ve bir -; olamaz ne Erkek ne de Kadın olan bir insan yaratmak. Biri ya da diğeri olmalı.

Biz soyut sınıf kullanarak uygulama erteleme.

public class Male extends Human{
...
    @Override
    public void goPee(){
        System.out.println("Stand Up");
    }
}

ve

public class Female extends Human{
...
    @Override
    public void goPee(){
        System.out.println("Sit Down");
    }
}

Şimdi bütün bir oda işemeye İnsanlar tam olarak söyleyebiliriz.

public static void main(String[] args){
    ArrayList<Human> group = new ArrayList<Human>();
    group.add(new Male());
    group.add(new Female());
    // ... add more...

    // tell the class to take a pee break
    for (Human person : group) person.goPee();
}

Bu verim öğrenirdiniz:

Stand Up
Sit Down
...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BetterCoder

    BetterCoder

    17 Aralık 2012
  • FrameCityJackal

    FrameCityJac

    4 Aralık 2010
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010