SORU
17 ŞUBAT 2014, PAZARTESİ


Java Çoklu Kalıtım

Tamamen Java çoklu kalıtım sorunları çözmek için nasıl anlamaya çalışırken ben açıklık gereken klasik bir sorum var.

Diyelim ki ben sınıf Animal oradan uzanır bird horse ve ben bir sınıf Pegasus uzanır bird horse Pegasus bir kuş ve at.

Bu hayvan, at sınıflar kuş arabirimleri çözmek ve onlardan Pegasus uygulamak için klasik yolu anladığım kadarıyla klasik elmas sorunu olduğunu düşünüyorum.

Eğer hala kuşlar ve atlar bir nesne oluşturabilirsiniz sorunu çözmek için başka bir yolu varsa merak ettim. Eğer hayvanlar da oluşturmak için bir yol olsaydı orada harika ama gerekli değil.

CEVAP
17 ŞUBAT 2014, PAZARTESİ


Olabilir arayüzleri oluşturmak için hayvan sınıfları (sınıf biyolojik anlam) * public interface Equidae atlar public interface Avialae kuşlar (ben biyolog değilim, bu yüzden bu terimler yanlış olabilir).

O zaman hala bir oluşturabilirsiniz

public class Bird implements Avialae {
}

ve

public class Horse implements Equidae {}

ve ayrıca

public class Pegasus implements Avialae, Equidae {}

Yorum eklemek için:

Yinelenen kod azaltmak için, uygulamak istediğiniz hayvanların ortak kodu çoğunu içeren soyut bir sınıf oluşturabilirsiniz.

public abstract class AbstractHorse implements Equidae {}

public class Horse extends AbstractHorse {}

public class Pegasus extends AbstractHorse implements Avialae {}

Güncelleme

Bir detay daha eklemek istiyorum. Brian remarks, bu OPERASYON zaten bir şey biliyordu.

Ancak, vurgulamak istediğim için, bana teklif bypass "çoklu kalıtım" sorunu ile arayüzleri ve bilmiyorum tavsiye için kullanmak arabirimleri temsil zaten bir beton türü (Kuş gibi) ama daha çok bir davranış (başkalarına başvurmak ördek-yazma, iyi, çok, ama, yani sadece biyolojik sınıf kuşlar, Avialae). Ben de arabirim adları büyük harf 'ben', sadece Neden İhtiyaç hakkında bir şey söyler IBird bir arabirim. gibi başlayarak kullanmak için tavsiye yok Bu soruya fark var: miras hiyerarşisini arayüzleri kullanarak, yararlı zaman soyut sınıfları kullanmak, ihtiyaca göre beton sınıfları ve uygun. eğer heyet kullanın inşa

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HowcastSportsFitness

    HowcastSport

    11 Mayıs 2011
  • My Name Is Jeff

    My Name Is J

    26 ŞUBAT 2008
  • SaMmM123

    SaMmM123

    3 Mayıs 2006