Nel tentativo di comprendere appieno come risolvere i molteplici problemi di ereditarietà di Java, ho una domanda classica che devo chiarire.
Diciamo che ho una classe che Animal
ha delle sottoclassi Bird
e Horse
che devo creare una classe Pegasus
che si estende da Bird
e Horse
poiché Pegasus
è sia un uccello che un cavallo.
Penso che questo sia il classico problema dei diamanti. Da quello che posso capire il modo classico per risolvere questo è quello di rendere il Animal
, Bird
e Horse
interfacce classi e implementare Pegasus
da loro.
Mi chiedevo se ci fosse un altro modo per risolvere il problema in cui posso ancora creare oggetti per uccelli e cavalli. Se ci fosse un modo per essere in grado di creare anche animali sarebbe fantastico ma non necessario.
public class Pegasus extends Horse implements Flying
.