Friz02 ha scritto:
Se B implementa C e A estende B, allora anche A deve implementare C?
Tecnicamente A
è-un B, quindi è anche vero che A
è-un C. Insomma la relazione IS-A classica dovuta alla ereditarietà.
Friz02 ha scritto:
e quindi fare override di tutti i metodi di C?
No, non necessariamente. Dipende ..... B implementa già tutti i metodi di C? L'obiettivo di A è di cambiare qualcosa da B in uno di quei metodi? B è astratta e non implementa alcuni dei metodi di C? (quindi è A che
deve farlo). Oppure B è ancora astratta e implementa tutti i metodi di C ma ne espone altri, astratti, che una sottoclasse è obbligata a implementare?
Insomma, dipende dallo scenario specifico.
Friz02 ha scritto:
Il dubbio mi è venuto studiando il pattern decorator
Il pattern decorator non usa solo la relazione IS-A ma anche e soprattutto la relazione HAS-A. Un "decoratore" ha (contiene) il riferimento ad un altro oggetto del suo stesso tipo o in senso più generale e tipico di un super-tipo.