Dalam pengaturcaraan berorientasikan objek, polimorfisme membenarkan objek mempamerkan gelagat berbeza bergantung pada jenisnya. Contohnya, kelas terbitan boleh mengatasi kaedah kelas induk (mengatasi kaedah). Antara muka menentukan set kaedah yang mesti dilaksanakan oleh kelas, memaksa objek kelas berbeza untuk berkongsi gelagat Contohnya, antara muka boleh cetak ditakrifkan dan dilaksanakan oleh kelas Buku dan Majalah untuk mencapai gelagat yang konsisten.
PHP Pemahaman mendalam tentang pengaturcaraan berorientasikan objek: penggunaan polimorfisme dan antara muka
Dalam pengaturcaraan berorientasikan objek, polimorfisme dan antara muka ialah konsep utama untuk meningkatkan fleksibiliti dan kebolehselenggaraan kod. Dalam artikel ini, kami akan mendalami penggunaan polimorfisme dan antara muka, serta menggunakan contoh praktikal untuk memperdalam pemahaman kami.
Polymorphism
Polymorphism membolehkan objek mempamerkan gelagat berbeza bergantung pada jenis objek. Sebagai contoh, kaedah dalam kelas induk boleh diganti dalam kelas terbitan, yang dipanggil pengganti kaedah.
Kes Amalan: Polimorfisme
Pertimbangkan contoh berikut di mana kelas Animal
类充当父类:
class Animal { public function makeSound() { echo "I'm an animal."; } }
现在,让我们创建一个派生类 Dog
,并覆盖 makeSound
方法:
class Dog extends Animal { public function makeSound() { echo "Woof woof!"; } }
我们可以使用多态性来创建一个数组来存储各种 Animal
对象:
$animals = [new Animal(), new Dog()]; foreach ($animals as $animal) { $animal->makeSound(); }
输出:
I'm an animal. Woof woof!
接口
接口是一个规定了类必须实现的方法集合的抽象类型。使用接口可以强制不同类的对象具有共同的行为。
实战案例:接口
让我们定义一个 Printable
接口:
interface Printable { public function print(); }
现在,我们可以创建实现 Printable
接口的 Book
和 Magazine
类:
class Book implements Printable { public function print() { echo "Printing a book..."; } } class Magazine implements Printable { public function print() { echo "Printing a magazine..."; } }
我们可以使用接口在我们的代码中创建一致的行为:
function print_items(array $printables) { foreach ($printables as $printable) { if ($printable instanceof Printable) { $printable->print(); } } }
调用 print_items
print_items([new Book(), new Magazine()]);
makeSound
: Printing a book... Printing a magazine...
Majalah
: 🎜rrreee🎜Kami boleh menggunakan antara muka untuk mencipta tingkah laku yang konsisten dalam kod kami: 🎜rrreee🎜Panggil fungsi Atas ialah kandungan terperinci Pemahaman mendalam tentang pengaturcaraan berorientasikan objek PHP: polimorfisme dan penggunaan antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!