riferimento sottoclasse a un'altra sottoclasse

3

Immagina di avere il seguente codice:

class A:
    pass

class B(A):
    pass

class C(A):
    def __init__(self):
        self.b = B()

Il codice sopra riportato è corretto in termini di ereditarietà corretta? Voglio dire, è una buona pratica fare riferimento a un'altra sottoclasse in una sottoclasse?

    
posta Mehdi Sadeghi 09.07.2014 - 14:53
fonte

2 risposte

3

Borse e valigie sono entrambi tipi di contenitori. Puoi anche mettere borse all'interno di valigie e viceversa. Il contenimento non interessa l'ereditarietà, e l'ereditarietà non si preoccupa del contenimento.

I due concetti sono interamente ortogonali e, in quanto tale, non esiste una "pratica migliore" qui.

    
risposta data 09.07.2014 - 15:06
fonte
1

Dipende. In alcuni linguaggi (come Java), non hai scelta perché la classe ogni (tranne Object ) è una sottoclasse.

Se la classe C ha bisogno di alcune funzionalità dalla classe B per fare il suo lavoro, ma non puoi descrivere istanze di classe C come anche istanze di classe B ( C non può funzionare come sostituzione drop-in per B ), quindi il tuo design è assolutamente corretto.

    
risposta data 09.07.2014 - 15:06
fonte

Leggi altre domande sui tag