Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist Polymorphismus? Beispiel-Tutorial zum objektorientierten PHP-Polymorphismus

Was ist Polymorphismus? Beispiel-Tutorial zum objektorientierten PHP-Polymorphismus

伊谢尔伦
伊谢尔伦Original
2017-06-29 09:53:482350Durchsuche

Was ist Polymorphismus?

Polymorphismus ist das dritte Merkmal von objektorientierten Sprachen nach Datenbankabstraktion und Vererbung. Polymorphismus bezieht sich auf mehrere Formen und hat die Fähigkeit, mehrere Formen auszudrücken. Bei objektorientierten Darstellungen wird je nach Objekttyp unterschiedlich gehandhabt. Durch Polymorphismus kann jedes Objekt auf seine eigene Weise auf eine gemeinsame Nachricht reagieren. Polymorphismus erhöht die Flexibilität und Wiederverwendbarkeit der Software.

Wenn wir eine doing()-Methode erstellen und es sich um einen Schüler handelt, wird diese für den Unterricht gedruckt, und wenn es sich um einen Firmenmitarbeiter handelt, wird sie für die Arbeit gedruckt.

Übliche Praxis

Bei Beurteilung verwenden

/**
 * PHP多态性
 */
 
// 定义学生类
class student{
    public function cla(){
            echo "学生工正在上课!<br />";
    }
}
 
// 定义职员类
class office{                              
        public function Wor(){
            echo "职员正在上班!<br />";
        }
}
 
// 判断对象类型方法
function doing($obj){ 
        if($obj instanceof student){ 
            $obj->cla();
        }elseif($obj instanceof office){
            $obj->wor();
        }else{
            echo "没有这个对象!";
        }
}
 
doing(new student()); // 学生正在上课
doing(new office());  // 职员正在上班

Die obige Ergebnisausgabe:

Die Schüler sind im Unterricht
Die Mitarbeiter sind im Unterricht. Gehe zur Arbeit

Diese gewöhnliche Methode hat einen Nachteil: Wenn viele Objekte vorhanden sind, ist if..else.. sehr lang und unflexibel.

Polymorphismuspraktiken

Definieren Sie eine öffentliche abstrakte Methode, und alle Unterklassen erben sie.

/**
 * PHP多态性
 */
 
// 定义一个公共类
class pub{
    protected function working(){
        echo "本方法需要在子类中重载!";
    }
}
 
// 定义学生类,继承公共类pub
class student 
extends
 pub{
    public function working(){
        echo "学生工正在上课!<br />";
    }
}
 
// 定义职员类,继承公共类pub
class office extends pub{
        public function working(){
        echo "职员正在上班!<br />";
        }
}
 
// 判断对象类型方法
function doing($obj){ 
        if($obj instanceof pub){ 
            $obj->working();
        }else{
            echo "没有这个对象!";
        }
}
 
doing(new student()); // 学生正在上课
doing(new office());  // 职员正在上班

Dies ist das Merkmal von Polymorphismus und flexibler Wiederverwendung.

Andere Praktiken

Aus Sicht der Implementierung des Polymorphismus ist es nichts anderes als die Standardisierung, dass jede Klasse die übergeordnete Klasse A überschreiben muss Methode, um eine einheitliche Wirkung zu erzielen. Wenn wir eine Klasse definieren, ist es auch möglich, selbst einheitliche Methoden hinzuzufügen. Daher kann das obige Beispiel auch so implementiert werden:

/**
 * PHP多态性
 */
 
// 定义学生类
class student{
    // 定义统一的方法pub
    public function pub(){
        echo "学生工正在上课!<br />";
    }
}
 
// 定义职员类
class office{
    // 定义统一的方法pub
        public function pub(){
        echo "职员正在上班!<br />";
        }
}
 
// 判断对象类型方法
function doing($obj){ 
    if($obj){
        // 调用类的统一方法
            $obj->pub();
    }else{
        echo &#39;没有这个对象&#39;;  
    }
}
 
doing(new student()); // 学生正在上课
doing(new office());  // 职员正在上班

Polymorphismus kann auch als Programmiermethode verstanden werden, und das ultimative Ziel der Programmierung ist nichts anderes als: Flexibilität, Polymorphismus, Wiederverwendung und Effizienz.

Das obige ist der detaillierte Inhalt vonWas ist Polymorphismus? Beispiel-Tutorial zum objektorientierten PHP-Polymorphismus. 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