Vertiefte Kenntnisse der objektorientierten PHP-Programmierung: Polymorphismus und die Verwendung von Schnittstellen

WBOY
Freigeben: 2024-06-03 09:56:57
Original
485 Leute haben es durchsucht

Bei der objektorientierten Programmierung ermöglicht Polymorphismus, dass Objekte je nach Typ unterschiedliche Verhaltensweisen zeigen. Beispielsweise kann eine abgeleitete Klasse Methoden der übergeordneten Klasse überschreiben (Methodenüberschreibung). Die Schnittstelle gibt den Satz von Methoden an, die eine Klasse implementieren muss, und zwingt Objekte verschiedener Klassen dazu, gemeinsame Verhaltensweisen zu verwenden. Beispielsweise wird die Printable-Schnittstelle von den Klassen Book und Magazine definiert und implementiert, um ein konsistentes Verhalten zu erreichen.

Vertiefte Kenntnisse der objektorientierten PHP-Programmierung: Polymorphismus und die Verwendung von Schnittstellen

PHP Tiefgehendes Verständnis der objektorientierten Programmierung: die Verwendung von Polymorphismus und Schnittstellen

In der objektorientierten Programmierung sind Polymorphismus und Schnittstellen Schlüsselkonzepte zur Verbesserung der Codeflexibilität und Wartbarkeit. In diesem Artikel werden wir uns eingehend mit der Verwendung von Polymorphismus und Schnittstellen befassen und anhand praktischer Beispiele unser Verständnis vertiefen.

Polymorphismus

Polymorphismus ermöglicht es Objekten, je nach Objekttyp unterschiedliche Verhaltensweisen zu zeigen. Beispielsweise kann eine Methode in einer übergeordneten Klasse in einer abgeleiteten Klasse überschrieben werden, was als „Methodenüberschreibung“ bezeichnet wird.

Übungsfall: Polymorphismus

Betrachten Sie das folgende Beispiel, in dem unsere Klasse Animal als übergeordnete Klasse fungiert:

class Animal {
    public function makeSound() {
        echo "I'm an animal.";
    }
}
Nach dem Login kopieren

Jetzt erstellen wir eine abgeleitete Klasse Dog</ code> , und überschreiben Sie die <code>makeSound-Methode: Animal 类充当父类:

class Dog extends Animal {
    public function makeSound() {
        echo "Woof woof!";
    }
}
Nach dem Login kopieren

现在,让我们创建一个派生类 Dog,并覆盖 makeSound 方法:

$animals = [new Animal(), new Dog()];

foreach ($animals as $animal) {
    $animal->makeSound();
}
Nach dem Login kopieren

我们可以使用多态性来创建一个数组来存储各种 Animal 对象:

I'm an animal.
Woof woof!
Nach dem Login kopieren

输出:

interface Printable {
    public function print();
}
Nach dem Login kopieren

接口

接口是一个规定了类必须实现的方法集合的抽象类型。使用接口可以强制不同类的对象具有共同的行为。

实战案例:接口

让我们定义一个 Printable 接口:

class Book implements Printable {
    public function print() {
        echo "Printing a book...";
    }
}

class Magazine implements Printable {
    public function print() {
        echo "Printing a magazine...";
    }
}
Nach dem Login kopieren

现在,我们可以创建实现 Printable 接口的 BookMagazine 类:

function print_items(array $printables) {
    foreach ($printables as $printable) {
        if ($printable instanceof Printable) {
            $printable->print();
        }
    }
}
Nach dem Login kopieren

我们可以使用接口在我们的代码中创建一致的行为:

print_items([new Book(), new Magazine()]);
Nach dem Login kopieren

调用 print_items

Printing a book...
Printing a magazine...
Nach dem Login kopieren
Wir können Polymorphismus verwenden, um ein Array zum Speichern verschiedener Animal-Objekte zu erstellen:

rrreee

Ausgabe: 🎜rrreee🎜 🎜Interface🎜🎜 🎜Eine Schnittstelle ist ein abstrakter Typ, der eine Reihe von Methoden angibt, die eine Klasse implementieren muss. Verwenden Sie Schnittstellen, um Objekten verschiedener Klassen ein gemeinsames Verhalten zu erzwingen. 🎜🎜🎜Praktischer Fall: Schnittstelle🎜🎜🎜Lassen Sie uns eine Printable-Schnittstelle definieren: 🎜rrreee🎜Jetzt können wir ein Bookerstellen, das den Printableimplementiert > Schnittstelle > und Magazine-Klasse: 🎜rrreee🎜Wir können Schnittstellen verwenden, um konsistentes Verhalten in unserem Code zu erzeugen: 🎜rrreee🎜Rufen Sie die Funktion print_items auf: 🎜rrreee🎜Ausgabe: 🎜 Rrreee

Das obige ist der detaillierte Inhalt vonVertiefte Kenntnisse der objektorientierten PHP-Programmierung: Polymorphismus und die Verwendung von Schnittstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage