Heim  >  Artikel  >  Backend-Entwicklung  >  Polymorphismus in PHP

Polymorphismus in PHP

墨辰丷
墨辰丷Original
2018-06-09 11:57:046226Durchsuche

Dieser Artikel stellt hauptsächlich den Polymorphismus in PHP vor. Ich hoffe, dass er für alle hilfreich ist.

Polymorphe Definition: kümmert sich nur um eine Schnittstelle oder Basisklasse, nicht um die spezifische Klasse eines Objekts. (Gleicher Typ, unterschiedliche Ergebnisse)

Hier sind zwei Beispiele:

Zuerst haben wir festgestellt, dass die Basisklasse den Standard definiert und die Unterklasse ihre eigenen Regeln implementiert. Dies ist eine Voraussetzung des Polymorphismus. Gleichzeitig dient dies dem Umschreiben. Tatsächlich handelt es sich um eine unterschiedliche Leistung verschiedener Klassen, die jedoch nicht unbedingt einer Schnittstellen- oder Basisklassenprogrammierung entspricht. Denn wenn man es aufruft, handelt es sich nicht um stu->showGrade(), sondern um jede ihrer eigenen Methoden


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());


Zweites Beispiel; : Der Parameter dovoice legt fest, dass $obj tierisch ist, was bedeutet, dass das Implementierungsklassenobjekt über die Schnittstelle akzeptiert wird. Eine Transformation nach oben. Dies steht im Einklang mit dem gleichen Typ, aber unterschiedlichen Ergebnissen, was Polymorphismus ist; in Java wird es tatsächlich animal a = new dog(); sein, weil PHP eine typisierte Sprache ist. Es gibt keinen Objektkonvertierungsmechanismus.

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());

Zusammenfassung:

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

Implementierungsfähigkeiten von PHP Unordered Tree


PHP Unordered Tree Implementierungsfähigkeiten


PHP-Vorgang Bildgrößenänderung, Wasserzeichen, Generieren von Bestätigungscode, Ausgabe und Speichern


Das obige ist der detaillierte Inhalt vonPolymorphismus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn