Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2008, 20h50   #1
Membre régulier
 
Inscription : juillet 2004
Messages : 393
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 393
Points : 80
Points : 80
Par défaut [POO] Classe mère/fille surcharge

Bonjour,

j'ai créé une classe fille dans laquelle j'ai une méthode identique à la classe mère.

Voici un exemple de ce que je veux faire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class A {
 
Public function start (){
    $this->test();
}
 
private test(){
 
    echo "class A"
}
 
}
 
class B extends A {
 
Public function start (){
    $this->test();
}
 
private test(){
 
    echo "class A"
}
 
}
Maintenant si je fais :

Code :
1
2
3
4
5
6
$test = new B;
$b->test;
 
j'aurais alors en sortie :
 
class B

Ma question :

Comment faire pour surcharger la méthode test et que ce soit celle de la classe fille qui soit utilisée ?

Merci pour votre aide !
shadeoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2008, 22h01   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par shadeoner Voir le message
que ce soit celle de la classe fille qui soit utilisée
dans ton exemple c'est bien la méthode de la classe fille qui est exécutée, tu voulais peut-être parlé de la classe mère ?
si c'est ça montre nous dans quel cas tu as besoin de faire ça
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 22h06   #3
Membre régulier
 
Inscription : juillet 2004
Messages : 393
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 393
Points : 80
Points : 80
Bonjour,

merci pour ton aide.

Oui en effet je me suis trompé, j'édite mon message.

En fait en gros voilà ce que je veux faire :

Bonjour,

j'ai créé une classe fille dans laquelle j'ai une méthode identique à la classe mère.

je souhaite dans une classe mère mettre une méthode start() qui serait :

start(){

$this->myFonction();
}

je souhaite mettre exactement la même méthode dans la classe fille, pour qu'elle appele la méthode myFonction de la classe fille.

Merci d'avance
shadeoner est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2008, 22h20   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
Citation:
Envoyé par shadeoner Voir le message
je souhaite mettre exactement la même méthode dans la classe fille, pour qu'elle appele la méthode myFonction de la classe fille.
je crois que tu t'es de nouveau embrouillé entre "fille" et "mère"

dis nous plutôt ce que font les classes
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2008, 10h29   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 9
Points : 10
Points : 10
A mon avis, l'opérateur de résolution de portée (: devrait résoudre ton problème, non?
cyreb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2008, 01h36   #6
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
La surcharge en PHP, c'est pas forcément simple.

Et est-ce vraiment nécessaire ?
Si une méthode de la superclasse est surchargée dans quasiment toutes les classes dérivées, pourquoi la mettre dans la superclasse ?
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h56.


 
 
 
 
Partenaires

Hébergement Web