Bonjour j'ai plusieurs classes qui suivent ce schéma :
Or si je crée un objet de class C et que j'appelle la méthode myFunc, seules les actions définies dans la méthode myFunc de la classe C sont appelées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 class A{ public function myFunc(){ //Actions propres aux objets de la classe A } } class B extends A{ public function myFunc(){ //Actions propres aux objets de la classe B } } class C extends B{ public function myFunc(){ //Actions propres aux objets de la classe C } } $objet = new C(); $objet->myFunc();
C'est à dire qu'il n'y a pas de remontée comme je le souhaiterais (myFunc de la classe C puis myFunc de la classe B et enfin myFunc de la classe A)
Y a t il un moyen d'effectuer ça intelligemment?
Il y a bien sûr une solution qui est la suivante mais que je ne trouve ni propre ni élégante ni futée :
Edit : Petite précision pour ce qui connaissent il me semblent que c'est l'équivalent des classes virtuelles de .NET que je recherche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 class A{ public function myFunc(){ //Actions propres aux objets de la classe A ... } } class B extends A{ public function myFuncB(){ //Actions propres aux objets de la classe B ... $this->myFuncA(); } } class C extends B{ public function myFuncC(){ //Actions propres aux objets de la classe B ... $this->myFuncB(); } } $objet = new C(); $objet->myFuncC();
Partager