2010-10-09 7 views
0

Dans PHP OOP, si j'ai une fonction définie dans la classe parente, et une version modifiée dans la classe enfant, et je l'appelle à partir d'un objet instancié de la classe enfant, utilisera-t-elle les classes enfants version de la fonction?Fonction PHP OOP Priorité

Je suis assez sûr que ce sera le cas, mais je voulais juste revérifier, car il n'y a aucun moyen pour moi de vérifier dans une application en cours d'exécution.

+1

Oui, google pour "polymorphisme" ou voir cette entrée wikipedia: http://en.wikipedia.org/wiki/Polymorphism_in_object-oriented_programming#PHP. – chelmertz

+1

Oh, et en passant, une fonction s'appelle "méthode" une fois qu'elle appartient à une classe. – chelmertz

+0

Wow avec le recul je ne peux pas croire que je n'ai jamais su cela - c'est tellement une seconde nature pour moi maintenant. –

Répondre

5

Oui, absolument.

Si vous souhaitez utiliser la version parent, vous devez appeler parent :: the_func() dans le remplacement de cette fonction par l'enfant.

Vous devez également appeler le constructeur d'un parent si vous remplacez le constructeur dans l'enfant. Il n'est pas appelé automatiquement.