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

  • foreignimage

    foreignimage

    13 HAZİRAN 2006
  • kamaniusilelis

    kamaniusilel

    10 HAZİRAN 2011
  • mahalodotcom

    mahalodotcom

    8 HAZİRAN 2007