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

  • eurotuner

    eurotuner

    6 Mart 2006
  • Rayone GB

    Rayone GB

    14 Temmuz 2007
  • The Pet Collective

    The Pet Coll

    5 Ocak 2012