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

  • ipsy

    ipsy

    1 EKİM 2012
  • MisterBrightside

    MisterBright

    24 Mart 2006
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009