Maison >développement back-end >Problème PHP >Comment implémenter le polymorphisme en php

Comment implémenter le polymorphisme en php

青灯夜游
青灯夜游original
2021-06-02 15:24:354440parcourir

Comment implémenter le polymorphisme en PHP : 1. Implémenter le polymorphisme en implémentant des interfaces ; 2. Utiliser des interfaces et des combinaisons pour définir une autre classe comme attribut dans une classe afin de simuler un héritage multiple et obtenir un héritage multiple via des relations d'héritage. État.

Comment implémenter le polymorphisme en php

L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3

Le polymorphisme fait référence à la même opération ou fonction Les procédures peuvent agir sur de nombreux types d'objets et obtenir des résultats différents. Différents objets peuvent produire des résultats différents lorsqu'ils reçoivent le même message. Ce phénomène est appelé polymorphisme.

Le polymorphisme permet à chaque objet de répondre à sa manière à un message commun. Le polymorphisme améliore la flexibilité et la réutilisabilité des logiciels.

Dans le développement de logiciels orientés objet, le polymorphisme est l'un des éléments les plus importants. La programmation orientée objet ne consiste pas simplement à combiner des méthodes et des données associées, mais à utiliser divers éléments de la programmation orientée objet pour décrire clairement diverses situations de la vie réelle. Cette section fournira une explication détaillée du polymorphisme dans la programmation orientée objet.

Qu'est-ce que le polymorphisme

Le polymorphisme signifie littéralement « formes multiples ». Il peut être compris comme plusieurs formes d'expression, c'est-à-dire « une interface externe et plusieurs méthodes de mise en œuvre internes ». Dans la théorie orientée objet, la définition générale du polymorphisme est la suivante : la même opération produira des résultats d'exécution différents lorsqu'elle sera appliquée à des instances de classes différentes. Autrement dit, lorsque des objets de types différents reçoivent le même message, ils obtiendront des résultats différents.

Dans le développement d'applications réels, la principale raison de l'utilisation du polymorphisme orienté objet est que différents objets de sous-classe peuvent être traités comme une seule classe parent et que les différences qui existent entre les différents objets de sous-classe peuvent être masquées. coder et élaborer une programmation commune pour s'adapter à l'évolution des besoins.

Conditions de mise en œuvre polymorphe

Il existe trois conditions pour la réalisation du polymorphisme : premièrement, il doit y avoir héritage, c'est-à-dire qu'il doit être une classe parent (ou classe de base) et ses sous-classes dérivées. Deuxièmement, il doit y avoir une référence de la classe parent pointant vers l'objet de la sous-classe, ce qui est la condition la plus importante pour réaliser le polymorphisme. Enfin, il doit y avoir une réécriture de méthode, c'est-à-dire que la sous-classe doit réécrire certaines méthodes de la classe parent en fonction de ses propres besoins. Les noms et paramètres des méthodes sont les mêmes.

Comment implémenter le polymorphisme en PHP :

1. Implémenter le polymorphisme en implémentant des interfaces

. Dans l'exemple suivant, la méthode statique de la classe UserAdmin nécessite un paramètre de type User.

Lors des utilisations ultérieures, une instance de la classe NormalUser qui implémente l'interface utilisateur est transmise. Le code s'exécute avec succès.

<?
interface User{ // User接口
	public function  getName();
	public function setName($_name);
}
class NormalUser implements User { // 实现接口的类.
	private $name;
	public function getName(){
		return $this->name;
	}
	public function setName($_name){
		$this->name = $_name;
	}
}
class UserAdmin{ //操作.
	public static function  ChangeUserName(User $_user,$_userName){
		$_user->setName($_userName);
	}
}
$normalUser = new NormalUser();
UserAdmin::ChangeUserName($normalUser,"Tom");//这里传入的是 NormalUser的实例.
echo $normalUser->getName();
?>

Résultat de l'exécution du programme :

Tom

2. Implémenter le polymorphisme via une relation d'héritage

Utiliser des interfaces et des combinaisons pour combiner une autre classe dans une classe. définis comme attributs pour simuler l'héritage multiple et obtenir un polymorphisme via des relations d'héritage.

Ce qui suit est la relation entre les classes et les sous-classes.

<?
class User{ // User接口
	public function  getName(){}
}
class NormalUser extends User { // 继承自User类
	private $name;
	public function getName(){
		return $this->name;
	}
	public function setName($_name){
		$this->name = $_name;
	}
}
class UserAdmin{ //操作.
	public static function  ChangeUserName(User $_user,$_userName){
		$_user->setName($_userName);
	}
}
$normalUser = new NormalUser();
UserAdmin::ChangeUserName($normalUser,"Tom");//这里传入的是 NormalUser的实例.
echo $normalUser->getName();
?>

Résultat de l'exécution du programme :

Tom

Étude recommandée : "Tutoriel vidéo PHP"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn