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

  • MobileTechReview

    MobileTechRe

    6 HAZİRAN 2008
  • UlyssesForever's channel

    UlyssesForev

    28 ŞUBAT 2012
  • Watcher3223

    Watcher3223

    15 Kasım 2007