2012-10-15 7 views

risposta

52

Polymorphism può essere raggiunto tramite overriding. In parole povere, il polimorfismo si riferisce alla capacità di un oggetto di fornire comportamenti diversi (utilizzare diverse implementazioni) a seconda della sua natura. In particolare, a seconda della sua posizione nella gerarchia di classi.

Method Overriding è quando un metodo definito in una superclasse o in un'interfaccia viene ridefinito da una delle sue sottoclassi, modificando in tal modo/sostituendo il comportamento fornito dalla superclasse. La decisione di chiamare un'implementazione o un'altra viene presa dinamicamente in fase di esecuzione, a seconda dell'oggetto da cui viene chiamata l'operazione. Si noti che la firma del metodo rimane la stessa quando si esegue l'override.

Method Overloading non è correlato al polimorfismo. Si riferisce alla definizione di diverse forme 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.

Operator overloading è un concetto diverso, relative al polimorfismo, che si riferisce alla capacità di un dato operatore dipendente dalla lingua a comportarsi in modo diverso in base al tipo di operandi (ad esempio, + potrebbe significare concatenazione con String s ed inoltre con operandi numerici).

Il example in Wikipedia è piuttosto illustrativo.

Le seguenti domande relative potrebbe essere anche utile:

+0

sta sovraccaricando estranei a polimorfismo? Il sovraccarico è il polimorfismo del tempo di compilazione. Dove oltre la guida è il polimorfismo di runtime –

4

In breve, non sono uguali.

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

Override significa ridefinire il corpo di un metodo di superclasse in una sottoclasse 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. Wikipedia's description of polymorphism può aiutarti a capire meglio il polimorfismo. In particolare la sezione del polimorfismo del sottotipo o il polimorfismo di inclusione è dove dovresti cercare.