Polimorfismo, sovraccarico e sovrascrittura di concetti simili?

Sono molto confuso sui concetti di polimorfismo, sovraccarico e override perché mi sembra uguale. Per favore, spiega questi concetti e in che modo sono diversi l’uno dall’altro

Molto confuso quindi per favore guidami correttamente.

Grazie

Il polimorfismo può essere raggiunto attraverso l’override. In parole povere, il polimorfismo si riferisce alla capacità di un object di fornire comportamenti diversi (utilizzare diverse implementazioni) a seconda della sua natura. In particolare, a seconda della sua posizione nella gerarchia di classi.

L’override del metodo si ha quando un metodo definito in una superclass o in un’interfaccia viene ridefinito da una delle sue sottoclassi, modificando / sostituendo il comportamento fornito dalla superclass. La decisione di chiamare un’implementazione o un’altra viene presa dynamicmente in fase di esecuzione, a seconda dell’object da cui viene chiamata l’operazione. Si noti che la firma del metodo rimane la stessa quando si esegue l’override.

Il metodo di sovraccarico non è correlato al polimorfismo. Si riferisce alla definizione di diverse forms di un metodo (di solito ricevendo numeri o tipi di parametri diversi). Può essere visto come polimorfismo statico. La decisione di chiamare un’implementazione o un’altra è presa al momento della codifica. Nota in questo caso la firma del metodo deve cambiare.

L’overloading dell’operatore è un concetto diverso, correlato al polimorfismo, che si riferisce alla capacità di un determinato operatore dipendente dalla lingua di comportarsi in modo diverso in base al tipo dei suoi operandi (ad esempio, + potrebbe significare concatenazione con String s e addizione con operandi numerici) .

L’ esempio in Wikipedia è piuttosto illustrativo.

Le seguenti domande correlate potrebbero essere anche utili:

  • Polimorfismo vs Override vs Sovraccarico
  • Polimorfismo: definisci solo due frasi

In breve, no, non sono la stessa cosa.

Sovraccarico significa creare metodi con lo stesso nome ma con parametri diversi.

Override significa ridefinire il corpo di un metodo di superclass in una sottoclass per modificare il comportamento di un metodo.

Il polimorfismo è un concetto ampio che include l’override e il sovraccarico e molto altro nel suo ambito. La descrizione di Wikipedia del polimorfismo può aiutarti a capire meglio il polimorfismo. Soprattutto la sezione del polimorfismo del sottotipo (o polimorfismo di inclusione) è dove dovresti guardare.