Una caratteristica di alcuni linguaggi di programmazione per computer orientati agli oggetti in cui una classe può ereditare comportamenti e caratteristiche da più di una superclasse o classe base.
In " Programmazione di Python ", Mark Lutz menziona "mixin". Vengo da un background C / C ++ / C # e non ho mai sentito il termine prima. Che cos'è un mixin? Leggendo tra le righe di questo esempio (che ho collegato perché è piuttosto lungo), presumo sia un …
Sono praticamente nuovo nella programmazione orientata agli oggetti di Python e ho difficoltà a comprendere la super()funzione (nuove classi di stile) soprattutto quando si tratta di ereditarietà multipla. Ad esempio se hai qualcosa come: class First(object): def __init__(self): print "first" class Second(object): def __init__(self): print "second" class Third(First, Second): def …
Poiché l'ereditarietà multipla è dannosa (rende la fonte più complicata) C # non fornisce direttamente un tale modello. Ma a volte sarebbe utile avere questa capacità. Ad esempio, sono in grado di implementare il modello di ereditarietà multipla mancante usando interfacce e tre classi simili: public interface IFirst { void …
Supponiamo che io abbia uno scenario di ereditarietà multipla: class A(object): # code for A here class B(object): # code for B here class C(A, B): def __init__(self): # What's the right code to write here to ensure # A.__init__ and B.__init__ get called? Ci sono due approcci tipici di …
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 Animalha delle sottoclassi Birde Horseche devo creare una classe Pegasusche si estende da Birde Horsepoiché Pegasusè sia un uccello che un cavallo. Penso …
Ho un'interfaccia generica public interface Consumer<E> { public void consume(E e); } Ho una classe che consuma due tipi di oggetti, quindi vorrei fare qualcosa del tipo: public class TwoTypesConsumer implements Consumer<Tomato>, Consumer<Apple> { public void consume(Tomato t) { ..... } public void consume(Apple a) { ...... } } Apparentemente …
Sono arrivato al punto in cui devo avere una sorta di eredità multipla rudimentale in JavaScript. (Non sono qui per discutere se questa è una buona idea o no, quindi ti preghiamo gentilmente di tenere quei commenti per te.) Voglio solo sapere se qualcuno ha tentato questo con qualche successo …
Un'interfaccia può estendere più interfacce in Java? Questo codice appare valido nel mio IDE e compila: interface Foo extends Runnable, Set, Comparator<String> { } ma avevo sentito che l'ereditarietà multipla non era consentita in Java. Perché sembra esserci un'eccezione per le interfacce?
Vedo persone che chiedono continuamente se l'ereditarietà multipla debba essere inclusa nella prossima versione di C # o Java. La gente del C ++, che ha la fortuna di avere questa capacità, dice che è come dare a qualcuno una corda per impiccarsi. Qual è il problema con l'ereditarietà multipla? …
So che l'ereditarietà multipla non è consentita in Java e C #. Molti libri dicono semplicemente che l'ereditarietà multipla non è consentita. Ma può essere implementato utilizzando le interfacce. Non si discute del motivo per cui non è consentito. Qualcuno può dirmi esattamente perché non è consentito?
class A { public: void eat(){ cout<<"A";} }; class B: virtual public A { public: void eat(){ cout<<"B";} }; class C: virtual public A { public: void eat(){ cout<<"C";} }; class D: public B,C { public: void eat(){ cout<<"D";} }; int main(){ A *a = new D(); a->eat(); } Capisco …
Se ho due interfacce, entrambe abbastanza diverse nei loro scopi, ma con la stessa firma del metodo, come faccio a fare in modo che una classe le implementi entrambe senza essere costretto a scrivere un unico metodo che serva per entrambe le interfacce e scrivendo una logica contorta nel metodo …
Ho 2 classi, una include il metodo A e l'altra include il metodo B. Quindi in una nuova classe ho bisogno di sovrascrivere i metodi methodA e methodB. Allora come ottengo l'ereditarietà multipla nell'obiettivo C? Sono un po 'confuso con la sintassi.
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.