Polymorphisme en PHP

墨辰丷
Libérer: 2023-03-31 08:52:01
original
6254 Les gens l'ont consulté

Cet article présente principalement le polymorphisme en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Définition polymorphe : ne se soucie que d'une interface ou d'une classe de base, pas de la classe spécifique d'un objet. (Même type, résultats différents)

Voici deux exemples :

Premièrement, nous avons constaté que la classe de base définit le standard et que la sous-classe implémente ses propres règles. C'est une exigence du polymorphisme. En même temps, il s'agit de satisfaire à la réécriture ; en fait, il s'agit d'une performance différente de différentes classes, cela ne satisfait pas strictement à une programmation d'interface ou de classe de base ; Parce que quand vous appelez ce n'est pas stu->showGrade() mais chacune de ses propres méthodes


class stu{

  public function showGrade(){
    echo "base class";  
  }

}


class xiaomin extends stu{

  public function showGrade(){
    echo "is son show 80";  
  } 
}

class xiaoli extends stu{

  public function showGrade(){
    echo "is son show 60";  
  } 
}

function doit($obj){

  if(get_class($obj) != "stu"){
    $obj->showGrade();
  }

}

doit(new xiaoli());
doit(new xiaomin());
Copier après la connexion


La seconde ; un exemple : le paramètre dovoice spécifie $obj comme animal, ce qui signifie que l'objet de classe d'implémentation est accepté via l'interface. Une transformation vers le haut. Ceci est cohérent avec le même type mais des résultats différents, ce qui est du polymorphisme ;

En fait, en Java, ce sera animal a = new dog(); Il n'existe aucun mécanisme de conversion d'objet.


interface animal{
  public function voice();
}

class cat implements animal{
  public function voice(){
    echo "miao~~~<br>";
  }
}

class dog implements animal{
  public function voice(){
    echo "wang ~~~<br>";
  }
}

function dovoice(animal $obj){
  $obj->voice();
}


dovoice(new dog());
dovoice(new cat());
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Compétences de mise en œuvre de l'arbre non ordonné php

Compétences de mise en œuvre de l'arbre non ordonné php

Opération PHP modification de la taille de l'image, filigrane, génération du code de vérification, sortie et enregistrement

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal