2010-10-01 22 views
0

Je suppose qu'il n'y a pas de surcharge de l'opérateur dans l'objectif C. Une surcharge de fonction exacte comme dans C++ n'est pas présente.Polymorphisme dans l'objectif C

De quelle manière le polymorphisme est-il implémenté dans l'objectif C?

Répondre

4

Les messages sont gérés dynamiquement, ce qui équivaut à des méthodes virtuelles C++.

Si la classe parent a un message -doSomething et une classe enfant re-outils -doSomething, quel que soit le type de référence que vous avez à l'objet enfant, appelant [instance doSomething] appellera la méthode de l'enfant.

Je ne suis pas sûr de ce que l'opérateur doit surcharge faire avec le polymorphisme, mais oui, la surcharge des opérateurs n'existe pas dans Objective C.

+2

surcharge de l'opérateur est orthogonal au polymorphisme. J'ajouterais aussi que si vous appelez 'doSomething', le récepteur n'a même pas besoin d'être une sous-classe. Cela fonctionnera aussi longtemps que l'instance répond à la méthode. – bbum

+0

Est-ce une bonne pratique de programmation de l'utiliser pour transmettre des informations de super classe à la classe enfant? –