This article will introduce you to the detailed explanation of polymorphism in PHP object-oriented development. I hope this tutorial will be helpful to you.
Polymorphism of classes
1. Introduction and advantages of polymorphism.
2. Operator: instanceof.
3. Simple application of polymorphism.
1. Introduction and advantages of polymorphism
Introduction: Polymorphism is the third feature of object-oriented languages after abstraction and inheritance.
Example: USB interface, different functions will be used when plugging different things into it.
Advantages: OOP is not just a collection of many functions and functions, the purpose is to use classes, inheritance, and polymorphism to describe a situation in our lives.
2. Operator: instanceof
PHP is a type operator used to determine whether a given object comes from a specified object
Format:
The code is as follows |
Copy code |
代码如下 |
复制代码 |
class A {}
class B {}
$thing = new A;
if ($thing instanceof A) {
echo "A";
}
if ($thing instanceof B) {
echo "B";
}
|
class A {}
class B {}
$thing = new A;
代码如下 |
复制代码 |
class A {
}
class B {
}
$new = new A;
if ($new instanceof A) {
echo "A";
}
if ($new instanceof B) {
echo "B";
}
?>
|
if ($thing instanceof A) {
echo "A";
}
if ($thing instanceof B) {
代码如下 |
复制代码 |
interface MyUsb {
function type();
function alert();
}
class Zip implements MyUsb {
function type() {
echo "2.0";
}
function alert() {
echo "U盘驱动正在检测…… ";
}
}
class Mp3 implements MyUsb {
function type() {
echo "1.0";
}
function alert() {
echo "MP3驱动正在检测……";
}
}
class MyPc {
function Add_Usb($what) {
$what->type();
$what->alert();
}
}
$p = new MyPc();
$zip = new Zip();
$mp3 = new Mp3();
$p->Add_Usb($zip);
$p->Add_Usb($mp3);
?>
|
echo "B";
}
|
3. Simple application of polymorphism
Example 1:
The code is as follows |
Copy code |
class A {<🎜>
<🎜>}<🎜>
<🎜>class B {<🎜>
<🎜>}<🎜>
<🎜>$new = new A;<🎜>
<🎜>if ($new instanceof A) {<🎜>
echo "A";<🎜>
}<🎜>
if ($new instanceof B) {<🎜>
echo "B";<🎜>
}<🎜>
?>
|
Example 2:
The code is as follows |
Copy code |
interface MyUsb {<🎜>
function type();<🎜>
function alert();<🎜>
}<🎜>
<🎜>class Zip implements MyUsb {<🎜>
function type() {<🎜>
echo "2.0";<🎜>
}<🎜>
function alert() {<🎜>
echo "The USB drive is detecting... ";
}
}
class Mp3 implements MyUsb {
function type() {
echo "1.0";
}
function alert() {
echo "MP3 driver is detecting...";
}
}
class MyPc {
function Add_Usb($what) {
$what->type();
$what->alert();
}
}
$p = new MyPc();
$zip = new Zip();
$mp3 = new Mp3();
$p->Add_Usb($zip);
$p->Add_Usb($mp3);
?>
|
Added an example 213.29.11.16 update
Inheritance and Polymorphism
/* Parent class */
class MyObject{
public $object_name; //Book name
public $object_price; //Book price
public $object_num; //Number of books
public $object_agio; //Book discount
function __construct($name,$price,$num,$agio){ //Constructor
$this -> object_name = $name;
$this -> object_price = $price;
$this -> object_num = $num;
$this -> object_agio = $agio;
}
function showMe(){ //Output function
The sentence echo ' will not be displayed. ';
}
}
/* Subclass Book */
class Book extends MyObject{ //Subclass of MyObject.
public $book_type; //Category
function __construct($type,$num){ //Declare the constructor method
$this -> book_type = $type;
$this -> object_num = $num;
}
function showMe(){ //Rewrite the showMe method in the parent class
return 'This time'.$this -> book_type.'Book'.$this->object_num.'this
';
}
}
/* Subclass Elec */
class Elec extends MyObject{ //Another subclass of MyObject
function showMe(){ //Rewrite the showMe method in the parent class
return 'Hot-selling books:'.$this -> object_name.'
Original price: '.$this -> object_price.'
Special price: '.$this -> object_price * $this -> ; object_agio;
}
}
/* Instantiate object */
$c_book = new Book('Computer class',1000); //Declare a Book subclass object
$h_elec = new Elec('PHP Function Reference Collection',98,3,0.8); //Declare an Elec subclass object
echo $c_book->showMe()."
"; //Output the showMe() method of Book subclass
echo $h_elec->showMe(); //The showMe() method that outputs the Elec subclass is
?>
http://www.bkjia.com/PHPjc/632641.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/632641.htmlTechArticleThis article will introduce you to the detailed explanation of polymorphism in PHP object-oriented development. I hope this tutorial will be useful to you. Classmates are helpful. Class polymorphism 1. Introduction and advantages of polymorphism. 2.Operators...