Heim php教程 PHP源码 PHP面向对象——多态

PHP面向对象——多态

May 25, 2016 pm 05:12 PM
php面向对象

      多态是指在面向对象中能够根据使用类的上下文来重新定义或改变类的性质和行为。    

      PHP不支持重载实现多态,但是PHP可以变向的实现多态效果。如下:

class a{    function test($i){ // $i可以是任何类型的变量
        print_r $i;
    }
}
Nach dem Login kopieren

      上例,可以看出由于PHP是弱类型语言,所以$i可以是任何类型的变量,这样一个函数就可以实现如java等强类型语言中靠改变参数类型重载方法的多态形式。

      这种形式比JAVA的参数类型重载更便捷高效,但也存在问题,如下:

<?php/**
教师类有一个drawPolygon()方法需要一个Polygon类,用来画多边形,此方法内部调用多边形的draw()方法,但由于弱类型,我们可以传入Circle类,就会调用Circle类的draw方法,这就事与愿违了。甚至可以传入阿猫、阿狗类,如果这些类没有draw()方法还会报错。*/class Teacher{    function drawPolygon($polygon){ 
        $polygon->draw(); 
    }    
}class Polygon{    function draw(){        echo "draw a polygon";
    }
}class Circle{    function draw(){        echo "draw a circle";
    }
}?>
Nach dem Login kopieren

      可以看出这样灵活的多态,需要一些控制,在PHP5.3以后可以对参数做类型限制,如下:

// 仿java,在变量参数前加一个限制类名
    function drawPolygon(Polygon $polygon){ 
        $polygon->draw(); 
    }
Nach dem Login kopieren

      这样就限制了只能传入Polygon及其子类。

     还有一只是改变参数数量的重载,同样是因为PHP也不支持方法的重载,所以也需要些变通的方法实现,如下:

<?php// 通过可变参数来达到改变参数数量重载的目的
// 不是必须传入的参数,必须在函数定义时赋初始值function open_database($DB, $cache_size_or_values=null, $cache_size=null)
{    switch (function_num_args())  // 通过function_num_args()函数计算传入参数的个数,根据个数来判断接下来的操作    {        case 1:            $r = select_db($DB);            break;        case 2:            $r = select_db($DB, $cache_size_or_values);            break;        case 3:            $r = select_db($DB, $cache_size_or_values, $cache_size);            break;
    }    return is_resource($r);
}?>
Nach dem Login kopieren

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Eine ausführliche Erklärung der objektorientierten Kapselung von PHP Eine ausführliche Erklärung der objektorientierten Kapselung von PHP Aug 11, 2023 am 11:00 AM

Eingehende Interpretation der objektorientierten PHP-Kapselung Kapselung ist eines der drei Hauptmerkmale der objektorientierten Programmierung. Sie bezieht sich auf die Kapselung von Daten und Operationen auf Daten in einer Klasse, das Verbergen spezifischer Implementierungsdetails vor externen Programmen und die Bereitstellung externer Schnittstellen. In PHP wird das Konzept der Kapselung durch die Verwendung von Zugriffsmodifikatoren (öffentlich, geschützt, privat) implementiert, um den Zugriff auf Eigenschaften und Methoden zu steuern. Werfen wir zunächst einen Blick auf die Rolle von Zugriffsmodifikatoren: public (public): Öffentliche Eigenschaften und Methoden können

So implementieren Sie die Objektversionskontrolle und -verwaltung mithilfe eines objektorientierten einfachen PHP-Factory-Musters So implementieren Sie die Objektversionskontrolle und -verwaltung mithilfe eines objektorientierten einfachen PHP-Factory-Musters Sep 06, 2023 pm 02:39 PM

So implementieren Sie die Objektversionskontrolle und -verwaltung über das objektorientierte einfache PHP-Factory-Modell. Bei der Entwicklung großer und komplexer PHP-Projekte sind Versionskontrolle und -verwaltung sehr wichtig. Durch geeignete Entwurfsmuster können wir die Erstellung und Verwendung von Objekten besser verwalten und steuern und so die Wartbarkeit und Skalierbarkeit des Codes verbessern. In diesem Artikel wird erläutert, wie Sie das objektorientierte einfache PHP-Factory-Muster verwenden, um die Versionskontrolle und -verwaltung von Objekten zu implementieren. Das einfache Factory-Muster ist ein Entwurfsmuster zum Erstellen von Klassen, das bestimmte Objekte über eine Factory-Klasse instanziiert

So erstellen Sie flexible Objektinstanzen mithilfe des objektorientierten einfachen PHP-Factory-Musters So erstellen Sie flexible Objektinstanzen mithilfe des objektorientierten einfachen PHP-Factory-Musters Sep 06, 2023 pm 02:12 PM

So erstellen Sie flexible Objektinstanzen mithilfe des objektorientierten einfachen Factory-Musters von PHP. Das einfache Factory-Muster ist ein gängiges Entwurfsmuster, das Objektinstanzen erstellt, ohne die Objekterstellungslogik offenzulegen. Dieser Modus kann die Flexibilität und Wartbarkeit des Codes verbessern und eignet sich besonders für Szenarien, in denen verschiedene Objekte basierend auf Eingabebedingungen dynamisch erstellt werden müssen. In PHP können wir die Merkmale der objektorientierten Programmierung nutzen, um das einfache Factory-Muster zu implementieren. Schauen wir uns unten ein Beispiel an. Angenommen, wir müssen einen Grafikrechner erstellen, der das kann

So beherrschen Sie objektorientierte Programmierkenntnisse in der PHP-Entwicklung So beherrschen Sie objektorientierte Programmierkenntnisse in der PHP-Entwicklung Jun 25, 2023 am 08:05 AM

Mit der Entwicklung des Internets hat sich PHP nach und nach zu einer der beliebtesten Programmiersprachen in der Webentwicklung entwickelt. Mit der rasanten Entwicklung von PHP ist die objektorientierte Programmierung jedoch zu einer der notwendigen Fähigkeiten in der PHP-Entwicklung geworden. In diesem Artikel besprechen wir, wie man objektorientierte Programmierkenntnisse in der PHP-Entwicklung erlernt. Die Konzepte der objektorientierten Programmierung verstehen Die objektorientierte Programmierung ist ein Programmierparadigma, das Code und Daten mithilfe von Objekten (Klassen, Eigenschaften und Methoden) organisiert. Bei der objektorientierten Programmierung wird Code in wiederverwendbaren Modulen organisiert, wodurch die Leistung des Programms verbessert wird

Verstehen Sie den objektorientierten Vererbungsmechanismus von PHP Verstehen Sie den objektorientierten Vererbungsmechanismus von PHP Aug 10, 2023 am 10:40 AM

Den objektorientierten Vererbungsmechanismus von PHP verstehen Vererbung ist ein wichtiges Konzept in der objektorientierten Programmierung, das die Erstellung neuer Klassen ermöglicht, die die Merkmale und Funktionen der alten Klassen enthalten. In PHP kann die Vererbung durch das Schlüsselwort „extends“ erreicht werden. Durch Vererbung können Unterklassen die Eigenschaften und Methoden der übergeordneten Klasse erben und neue Eigenschaften und Methoden hinzufügen oder geerbte Methoden überschreiben. Lassen Sie uns den objektorientierten Vererbungsmechanismus von PHP anhand eines Beispiels verstehen. classAnimal{public$name

So erreichen Sie einen nahtlosen Wechsel und Ersatz von Objekten durch ein objektorientiertes einfaches PHP-Factory-Muster So erreichen Sie einen nahtlosen Wechsel und Ersatz von Objekten durch ein objektorientiertes einfaches PHP-Factory-Muster Sep 06, 2023 am 08:01 AM

So realisieren Sie ein nahtloses Umschalten und Ersetzen von Objekten durch den objektorientierten einfachen Factory-Modus von PHP. Einführung: In der PHP-Entwicklung ist die objektorientierte Programmierung (objektorientierte Programmierung, kurz OOP) ein weit verbreitetes Programmierparadigma. Das objektorientierte Entwurfsmuster kann die Wartbarkeit und Skalierbarkeit des Codes weiter verbessern. Dieser Artikel konzentriert sich auf das einfache Factory-Muster in PHP, um ein nahtloses Umschalten und Ersetzen von Objekten zu erreichen. Was ist das einfache Fabrikmuster? Einfaches Fabrikmuster (Simple

Ausführliche Erläuterung häufiger Probleme bei der objektorientierten PHP-Programmierung Ausführliche Erläuterung häufiger Probleme bei der objektorientierten PHP-Programmierung Jun 09, 2023 am 09:27 AM

Die PHP-Sprache ist zu einer sehr beliebten Webentwicklungssprache geworden, da sie einfach zu erlernen und zu verwenden ist. Die objektorientierte Programmierung ist eines der wichtigsten Programmierparadigmen in der PHP-Sprache. Da die objektorientierte Programmierung jedoch nicht leicht zu beherrschen ist, treten häufig einige häufig auftretende Probleme auf. In diesem Artikel liefern wir eine detaillierte Analyse häufiger Probleme bei der objektorientierten Programmierung in PHP. Frage 1: Wie erstelle ich ein Objekt? In PHP können Sie das Schlüsselwort new verwenden, um ein Objekt zu erstellen. Zum Beispiel: classMyClass{/

Wie PHP objektorientierte Programmierung implementiert und die Lesbarkeit und Wartbarkeit des Codes verbessert Wie PHP objektorientierte Programmierung implementiert und die Lesbarkeit und Wartbarkeit des Codes verbessert Jun 27, 2023 pm 12:28 PM

Mit der kontinuierlichen Weiterentwicklung der Internettechnologie ist PHP zu einer unserer gängigen Website-Entwicklungssprachen geworden, und die objektorientierte PHP-Programmierung ist ebenfalls zu einem Wissenspunkt geworden, der erlernt werden muss. Objektorientierte Programmierung (OOP) ist ein Programmierparadigma, dessen Kernkonzept darin besteht, Daten und Verhalten in einem Objekt zu kombinieren, um die Wiederverwendbarkeit, Lesbarkeit und Wartbarkeit von Code zu verbessern. In diesem Artikel erfahren Sie, wie Sie mit PHP objektorientierte Programmierung implementieren und die Lesbarkeit und Wartbarkeit Ihres Codes verbessern. Grundkonzepte der objektorientierten Programmierung Bei der objektorientierten Programmierung verfügt jedes Objekt über eine Reihe von Eigenschaften.

See all articles