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

  • Baby Big Mouth

    Baby Big Mou

    5 Mart 2013
  • martin shervington

    martin sherv

    7 EKİM 2011
  • Maya Learning Channel

    Maya Learnin

    23 HAZİRAN 2010