SORU
20 EKİM 2011, PERŞEMBE


Bir şekilde soyut değil ama geçersiz kılınması gereken bir yöntem var mı?

Alt sınıflar üst sınıf olmayan soyut bir yöntemi geçersiz kılmak için zorlamak için herhangi bir yolu var mı?

Üst sınıfın örneklerini oluşturmak mümkün olmak istiyorum, ama eğer bir sınıf bu sınıfı genişletirse, bazı yöntemler kendi tanımını vermek gerekir.

CEVAP
20 EKİM 2011, PERŞEMBE


Doğrudan zorlanan derleyici bu, bildiğim kadarıyla yapmak için bir yol yoktur.

Etrafına tarafından işe yarayabilirdeğilüst sınıf örneklenebilir yapmak, ancak bunun yerine varsayılan uygulama (Olası) özel bazı alt sınıflar oluşturur bu fabrika bir yöntem sağlar:

public abstract class Base {
  public static Base create() {
    return new DefaultBase();
  }

  public abstract void frobnicate();

  static class DefaultBase extends Base {
    public void frobnicate() {
      // default frobnication implementation
    }
  }
}

Sanaolamaznew Base() Şimdi yaz, ama Base.create() varsayılan uygulama yapabilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • A Alkhaldi

    A Alkhaldi

    12 Mayıs 2007
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007
  • Palmundo Ec

    Palmundo Ec

    11 HAZİRAN 2009